فایل .htaccess
یکی از ابزارهای قدرتمند برای افزایش امنیت سایتهای Apache است. در ادامه، مجموعهای از کدهای امنیتی را معرفی میکنم که میتوانند به بهبود امنیت سایت شما کمک کنند.
🔒 1. جلوگیری از نمایش لیست فایلها
اگر دایرکتوری سایت شما فاقد فایل index.html
باشد، کاربران میتوانند لیست فایلهای آن را ببینند. برای جلوگیری از این مشکل:
Options -Indexes
2. غیرفعال کردن اجرای فایلهای PHP در پوشههای حساس
اگر از وردپرس یا هر CMS دیگری استفاده میکنید، بهتر است اجرای فایلهای PHP را در پوشههایی مثل uploads
غیرفعال کنید:
📌 مسیر دقیق را در uploads/.htaccess
قرار دهید.
🔄 3. ریدایرکت سایت به HTTPS
اگر میخواهید سایت شما همیشه با SSL (https://) بارگذاری شود:
4. جلوگیری از دسترسی به wp-config.php
و .htaccess
برای جلوگیری از هک شدن وردپرس، فایلهای حساس را قفل کنید:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
<Files .htaccess>
order allow,deny
deny from all
</Files>
🔐 5. جلوگیری از هات لینک (Hotlink Protection)
اگر نمیخواهید سایتهای دیگر از تصاویر شما بدون اجازه استفاده کنند:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com/.*$ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ – [F]
🚀 6. محدود کردن دسترسی به پنل مدیریت
اگر میخواهید دسترسی به wp-admin
یا هر پوشهی مدیریت فقط از یک آیپی خاص ممکن باشد:
<Files wp-login.php>
order deny,allow
deny from all
allow from 123.45.67.89
</Files>
📌 123.45.67.89
را با آیپی خود جایگزین کنید.
🛡 7. جلوگیری از حملات XSS
حملات XSS (Cross-Site Scripting) میتوانند به سرقت اطلاعات منجر شوند. برای کاهش خطر:
Header set X-XSS-Protection “1; mode=block”
Header always append X-Frame-Options DENY
🔥 8. جلوگیری از حملات SQL Injection
برای کاهش خطر حملات SQL Injection:
⚠ 9. بلاک کردن دسترسی به سایت از کشورهای خاص
اگر میخواهید دسترسی از برخی کشورها را مسدود کنید، از GeoIP
در .htaccess
استفاده کنید:
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
📌 این کد دسترسی از چین (CN) و روسیه (RU) را میبندد. میتوانید کد کشورها را تغییر دهید.
🔄 10. جلوگیری از استفاده بیشازحد از منابع سرور (DDoS Protection)
حملات DDoS میتوانند سرور را دچار اختلال کنند. برای محدود کردن تعداد درخواستها:
<Limit GET POST>
Order deny,allow
Deny from all
Allow from 123.45.67.89
</Limit>
📌 فقط آیپیهای مجاز را اضافه کنید.
📌 نکته مهم:
قبل از اعمال تغییرات در .htaccess
، از فایل اصلی بکاپ بگیرید تا در صورت خطا، بتوانید تنظیمات را به حالت قبل برگردانید.