این روزها امنیت بخصوص در دنیای وب یک پدیده نسبی هست. اینکه سایت شما امسال امنیت کامل برخوردار هست، هیچ تضمینی نیست که سال آینده یا یک ماه دیگه هم این امنیت رو داشته باشد. هکرها و سازندگان ویروس و فایل مخرب دائما در حال بررسی آسیب پذیری های وب سایت شما هستند. بخصوص اگه سایت شما وردپرسی باشد با وجود همه امکانات و قابلیت های پیشرفته ای که دارد. در صورتی که نکات امنیتی را رعایت نکنید آسیب پذیری های امنیتی خود را نیز دارد.
یکی از فایل هایی که باعث آسیب پذیری سایت شما می باشد فایل htaccess است. و در عین کاربردی ترین فایلی که می تواند از هک شدن سایت شما جلوگیری کند همین اچ تی اکسس هست. به شرط آنکه کدهای امنیتی و تنظیمات آن را به درستی پیاده سازی کنید ما در این مقاله به بررسی کدهای کاربری و ضروری برای اچ تی کسس جهت جلوگیری از هک شدن سایت پرداخته ایم.
🔒 1. جلوگیری از نمایش لیست فایلها
اگر دایرکتوری سایت شما فاقد فایل index.html
باشد، کاربران میتوانند لیست فایلهای آن را ببینند. برای جلوگیری از این مشکل:
Options -Indexes
2. غیرفعال کردن اجرای فایلهای PHP در پوشههای حساس
اگر از وردپرس یا هر CMS دیگری استفاده میکنید، بهتر است اجرای فایلهای PHP را در پوشههایی مثل uploads
غیرفعال کنید:
<FilesMatch “\.php$”> deny from all </FilesMatch>
📌 مسیر دقیق را در uploads/.htaccess
قرار دهید.
🔄 3. ریدایرکت سایت به HTTPS
اگر میخواهید سایت شما همیشه با SSL (https://) بارگذاری شود:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
🚫 4. محدود کردن دسترسی به پنل مدیریت
صفحات مدیریت مثل wp-admin و cPanel همیشه هدف حملات قرار میگیرند.
✅ اقدامات:
- تغییر آدرس ورود وردپرس با افزونه WPS Hide Login
- محدود کردن ورود به IPهای خاص در
.htaccess
- استفاده از Cloudflare برای فایروال و DDoS Protection
مثال: فقط یک IP به wp-login.php
دسترسی داشته باشد:
<Files wp-login.php> order deny,allow deny from all allow from 192.168.1.1 </Files>
📌 IP خود را جایگزین کنید.
🏰 5. جلوگیری از لیست شدن فایلها و پوشهها
اگر کاربر بتواند محتوای دایرکتوریهای سایت شما را ببیند، امنیت شما به خطر میافتد. برای غیرفعال کردن:
Options -Indexes
📌 این کد را در .htaccess
قرار دهید تا لیست دایرکتوریها نمایش داده نشود.
🚀 6. افزایش امنیت دیتابیس
✅ اقدامات:
- تغییر پیشوند جداول دیتابیس وردپرس از
wp_
به یک مقدار تصادفی - غیر فعال کردن اجرای
SQL Injection
در.htaccess
RewriteCond %{QUERY_STRING} (\<|>|'|"|%3C|%3E|%27|%22) [NC] RewriteRule .* - [F]
دسترسی به phpMyAdmin
را محدود کنید:
<Directory /usr/share/phpmyadmin> Order deny,allow Deny from all Allow from 192.168.1.1 </Directory>
📌 IP خود را جایگزین کنید.
🚫 7. جلوگیری از هات لینکینگ (Hotlink Protection)
هات لینکینگ باعث میشود که سایتهای دیگر از پهنای باند شما برای نمایش تصاویرشان استفاده کنند. جلوگیری از این کار در .htaccess
:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.com/.*$ [NC] RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F]
🛑 8. جلوگیری از دسترسی به wp-config.php
و .htaccess
برای جلوگیری از هک شدن وردپرس، فایلهای حساس را قفل کنید:
<Files wp-config.php> order allow,deny deny from all </Files> <Files .htaccess> order allow,deny deny from all </Files>
🚀 9. محدود کردن دسترسی به پنل مدیریت
اگر میخواهید دسترسی به wp-admin
یا هر پوشهی مدیریت فقط از یک آیپی خاص ممکن باشد:
<Files wp-login.php> order deny,allow deny from all allow from 123.45.67.89 </Files>
📌 123.45.67.89
را با آیپی خود جایگزین کنید.
🛡 10. جلوگیری از حملات XSS
حملات XSS (Cross-Site Scripting) میتوانند به سرقت اطلاعات منجر شوند. برای کاهش خطر:
Header set X-XSS-Protection “1; mode=block” Header always append X-Frame-Options DENY
⚠ 11. بلاک کردن دسترسی به سایت از کشورهای خاص
اگر میخواهید دسترسی از برخی کشورها را مسدود کنید، از GeoIP
در .htaccess
استفاده کنید:
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry Deny from env=BlockCountry
📌 این کد دسترسی از چین (CN) و روسیه (RU) را میبندد. میتوانید کد کشورها را تغییر دهید.
🔄 12. جلوگیری از استفاده بیشازحد از منابع سرور (DDoS Protection)
حملات DDoS میتوانند سرور را دچار اختلال کنند. برای محدود کردن تعداد درخواستها:
Order deny,allow Deny from all Allow from 123.45.67.89
📌 فقط آیپیهای مجاز را اضافه کنید.
📌 نکته مهم:
قبل از اعمال تغییرات در .htaccess
، از فایل اصلی بکاپ بگیرید تا در صورت خطا، بتوانید تنظیمات را به حالت قبل برگردانید.