تماس مستقیم با من
منوی دسته بندی
مشکلات امنیتی

چگونه مشکلات امنیتی اعلام‌شده توسط سامانه ملی هشدار را رفع کنیم؟

اگه برای سایتتون درخواست مجوز فعالیت آنلاین داده باشید، ممکنه بعد از یه مدت با گزارش سامانه ملی هشدار روبه‌رو بشید و یه سری ایراد و مشکلات امنیتی بهتون اعلام بشه. برای منم دقیقاً همین اتفاق افتاد و وقتی گزارش رو دیدم، اولش راستش خیلی از مواردش رو متوجه نشدم! مواردی مثل فایل‌های وردپرس، پورت‌های باز، هدرهای امنیتی و HSTS که نمی‌دونستم دقیقاً چی هستن و باید باهاشون چیکار کنم. توی این مقاله می‌خوام تجربه خودم رو مرحله‌به‌مرحله باهاتون در میون بذارم و بگم چطور این موارد رو بررسی و تا حدی برطرف کردم.

مشکلات امنیتی

اول از همه وارد File Manager شو

  1. وارد cPanel سایتت شو.
  2. روی File Manager کلیک کن.
  3. از ستون سمت چپ، روی public_html کلیک کن.

الان کاری به پوشه‌های وردپرس نداریم

حالا در همان public_html دنبال فایل زیر بگرد:

.htaccess

⚠️ ممکنه اولش نقطه داشته باشه و به همین دلیل دیده نشه.

اگر .htaccess را می‌بینی، فعلاً بازش نکن.اگر نمی‌بینی هم مشکلی نیست.

احتمالاً فایل‌های مخفی در cPanel نمایش داده نمی‌شن. فقط همین یک تنظیم رو انجام بده:

نمایش فایل‌های مخفی

  1. داخل File Manager هستی.
  2. بالای صفحه دنبال گزینه Settings بگرد و روی آن کلیک کن.
  3. یک پنجره باز می‌شود.
  4. گزینه Show Hidden Files (dotfiles) را تیک بزن.
  5. روی Save بزن.

حالا دوباره داخل public_html نگاه کن.

باید فایلی به اسم:

.htaccess

ببینی.

⚠️ فعلاً اصلاً روی .htaccess کلیک نکن و چیزی تغییر نده.

روی فایل .htaccess:

  1. کلیک راست کن.
  2. گزینه Download رو بزن.
  3. فایل رو روی کامپیوترت ذخیره کن.

این کار فقط برای پشتیبانه؛ اگر اشتباهی پیش اومد، نسخه اصلی رو داریم.

  1. در File Manager → public_html
  2. روی .htaccess کلیک راست کن.
  3. گزینه Edit رو بزن.
  4. اگر پنجره‌ای برای تأیید باز شد، روی Edit یا Continue بزن.

حالا یک صفحه باز می‌شه که داخلش چند خط کد می‌بینی.

فعلاً هیچ خطی رو پاک نکن.

فقط برو آخرین خط فایل و یک بار Enter بزن تا یک خط خالی ایجاد بشه.

بعد این کد رو دقیقاً در انتهای فایل قرار بده:

# Security Headers

Header always set X-Frame-Options “SAMEORIGIN”
Header always set X-Content-Type-Options “nosniff”
Header always set Referrer-Policy “strict-origin-when-cross-origin”
Header always set Permissions-Policy “camera=(), microphone=(), geolocation=()”
Header always set X-XSS-Protection “1; mode=block”

# Disable directory listing
Options -Indexes

# Protect WordPress information files

Require all denied

فعلاً HSTS را اضافه نمی‌کنیم.
اول همین موارد را انجام می‌دهیم و مطمئن می‌شویم سایت سالم می‌ماند.

بعد از قرار دادن کد، روی Save Changes بزن.

سپس سایتت را باز کن و فقط این ۳ مورد را چک کن:

  1. صفحه اصلی باز شود.
  2. یک صفحه محصول باز شود.
  3. اگر ووکامرس داری، سبد خرید باز شود.

حالا می‌ریم سراغ مرحله بعدی گزارش امنیتی: HSTS

دوباره برو:

cPanel → File Manager → public_html → .htaccess → Edit

برو آخر فایل، بعد از کدهایی که قبلاً اضافه کردیم، این خط را قرار بده:


Header always set Strict-Transport-Security “max-age=31536000”

سایت را باز کن و مطمئن شو همچنان بدون مشکل باز می‌شود.

بعد می‌ریم سراغ مخفی کردن نسخه PHP؛ اون قسمت را باید از هاست بخواهیم انجام بده، چون هاستمون اغلب اشتراکیه. گزارش هم دقیقاً گفته نسخه PHP در هدر سایت نمایش داده می‌شود

حالا فعلاً هیچ کدی به .htaccess اضافه نکن. یک مورد از گزارش مانده که مربوط به نمایش نسخه PHP است. گزارش گفته نسخه PHP از طریق هدر سایت قابل مشاهده است.

چون هاست اشتراکی است، این قسمت را بهتر است خود پشتیبانی هاست انجام دهد.

این متن را برای پشتیبانی هاست بفرست:

سلام. در گزارش امنیتی سایت saqfino.ir اعلام شده که نسخه دقیق PHP در Response Header و مقدار X-Powered-By نمایش داده می‌شود. لطفاً در سطح سرور هدر X-Powered-By را حذف کنید تا نسخه PHP برای کاربران قابل مشاهده نباشد. همچنین در صورت امکان تنظیمات مربوط به Security Headers را نیز بررسی فرمایید.

یک تست ساده انجام بده

در مرورگر این دو آدرس را جداگانه باز کن:

https://adresssitet.ir/readme.html

https://adresssitet.ir/license.txt

اگر با خطای 403 Forbidden یا صفحه «دسترسی مجاز نیست» مواجه شدی، یعنی تنظیمی که انجام دادیم کار می‌کند

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *