رفع یافتهها
هر یافته را با تنظیمات آماده برای Nginx، Apache، کلادفلر و آروان برطرف کنید.
هر یافته را با تنظیمات آماده برای Nginx، Apache، کلادفلر و آروان برطرف کنید.
هر یافتهی اسکن امنیتی سه بخش دارد: مشکل چیست، چرا مهم است و چطور رفعش کنم. راهحلها تا جای ممکن آمادهی کپی هستند: برای Nginx، Apache و کلادفلر، بهعلاوهی یک راهنمای کلی برای بقیهی موارد.
هدر HSTS تنظیم نشده است
مشکل چیست
مرورگر مجبور نیست همیشه از HTTPS استفاده کند.
چرا مهم است
در شبکهی ناامن، اولین درخواست میتواند شنود یا دستکاری شود.
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
پرتکرارترین یافتهی اسکنها، هدرهای امنیتی جاافتاده است. خوشبختانه رفعش هم سادهترین است. همهی هدرها را یکجا در هدرهای امنیتی آماده گذاشتهایم.
فایل را از پوشهی عمومی بردارید، دسترسی به فایلهای مخفی را ببندید و همهی رمزهای داخل آن را عوض کنید. مراحل کامل در اسکن نشت اطلاعات آمده است.
ssl_protocols TLSv1.2 TLSv1.3;
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSL/TLS → Edge Certificates → Minimum TLS Version → 1.2
کوکیهای نشست (session)، یعنی همانهایی که ورود کاربر را نگه میدارند، باید هر سه ویژگی را داشته باشند:
Secure: فقط روی HTTPS فرستاده شود.HttpOnly: اسکریپتهای صفحه نتوانند آن را بخوانند. این ویژگی جلوی سرقت نشست با XSS را میگیرد.SameSite=Lax یا Strict: سایتهای دیگر نتوانند درخواست را با کوکی کاربر بفرستند.این تنظیم معمولاً در خود برنامه انجام میشود، نه وبسرور. مثلاً در لاراول در config/session.php و در PHP با session.cookie_secure و session.cookie_httponly.
Access-Control-Allow-Origin: *)#بهجای ستاره، فقط دامنههایی را مجاز کنید که واقعاً به API شما نیاز دارند:
add_header Access-Control-Allow-Origin "https://your-trusted-origin.com" always;
هرگز * را همراه با ارسال کوکی یا توکن (credentials) استفاده نکنید.
صفحهی خطای Debug مسیر فایلها، نسخهها و گاهی رمزها را نشان میدهد. در محیط اصلی خاموشش کنید:
| فریمورک | تنظیم |
|---|---|
| Laravel | APP_DEBUG=false در فایل .env |
| Django | DEBUG = False در settings.py |
| ASP.NET | <customErrors mode="On"> در web.config |
اگر سایت پشت کلادفلر یا آروان است ولی IP واقعی سرور از راه دیگری، مثلاً زیردامنههای mail یا ftp یا cpanel، پیدا شود، مهاجم میتواند CDN را دور بزند و مستقیم به سرور حمله کند.
بدون این دو رکورد، هر کسی میتواند ایمیلی بفرستد که ظاهراً از طرف دامنهی شماست. در پنل DNS:
@ TXT "v=spf1 include:_spf.your-mail-provider.com ~all"
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.ir"
مقدار SPF را از سرویس ایمیلتان بگیرید. هر سرویس مقدار include مخصوص خودش را دارد.
دوباره اسکن دوباره را بزنید. یافتهی رفعشده از فهرست حذف میشود و امتیاز بالا میرود. اگر بررسی مرتبط با آن یافته رخداد باز داشته باشد، رخداد در اجرای بعدی بررسی خودکار بسته میشود.