۱۵ کد کاربردی برای Htaccess سایت وردپرس

۲ دیدگاه

داشتن یک فایل .htaccess که به صورت درست و کامل پیکربندی شده باشد برای افزایش امنیت و کاهش آسیب پذیری های سایت ضروری است.

.htaccess یک فایل تنظیمات است که توسط وب سرور Apache مورد استفاده قرار می گیرد. اکثر سایت های وردپرسی روی وب سرور آپاچی اجرا می شوند ولی بخشی هم روی وب سرور های دیگر مثل nginx یا litespeed کار می کنند. در این مقاله مجموعه ای از تکه های مربوط به تنظیمات htaccess را خواهید یافت که می توانید با استفاده از آنها امنیت سایت خود را بالاتر ببرید و امکانات جالبی را هم اضافه کنید.

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

اگر از کسانی هستید که معمولا به تنظیمات پیچیده تر کاری ندارند می توانید پلاگین BulletProof Security را به عنوان یک پلاگین امنیتی قابل اعتماد روی وردپرس تان نصب کنید تا این پلاگین خودش امنیت htaccess را نیز بالا ببرد.

ایجاد .htaccess پیش فرض وردپرس

فایل htaccess برای هر دایرکتوری می توانید به صورت جداگانه وجود داشته باشد . اگر شما در پوشه اصلی وردپرس این فایل را پیدا نمی کنید می توانید در این پوشه یک فایل خالی با نام .htaccess ایجاد کنید.دقت کنید که اول فایل علامت . وجود داشته باشد.

کد های پیشفرض فایل htaccess وردپرس را در زیر مشاهده می کنید.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

در این بخش از کد نباید تغییری بدید و کدهای جدیدی که می خواهید اضافه کنید باید در زیر این بخش اضافه کنید.

در همین رابطه :   سیر تا پیاز امنیت وردپرس

۱.مسدود کردن دسترسی به همه فایل های htaccess

# Denies access to all .htaccess files
<Files ~ "^.*\.([Hh][Tt][Aa])">
Order Allow,Deny
Deny from all
Satisfy all
</Files>

۲.محافظت از فایل تنظیمات wp-config

اگر بخواهید بر اساس IP ثابت مدیران سایت اجازه دسترسی بدهید کافیست علامت # را از اول خط # Allow from xx.xx.xx.xxx بردارید و به جای x هم IP را جایگزین کنید.

# Protects wp-config
<Files wp-config.php>
Order Allow,Deny
# Allow from xx.xx.xx.xxx
# Allow from yy.yy.yy.yyy
Deny from all
</Files>

۳.جلوگیری از حمله DDOS از طریق قابلیت XML-RPC

# Protects XML-RPC, prevents DDoS attack
<FilesMatch "^(xmlrpc\.php)">
Order Deny,Allow
# Allow from xx.xx.xx.xxx
# Allow from yy.yy.yy.yyy
Deny from all
</FilesMatch>

۴.محافظت از بخش مدیریت وردپرس

محافظت از مدیریت ایده خوبی برای افزایش امنیت سایت است ولی فراموش نکنید در بخش پایین کد زیر حداقل به یک IP اجازه دسترسی Allow بدهید والا به مدیریت دسترسی نخواهید داشت.برای محافظت از پوشه wp-admin می توانید از طریق cPanel و Protect Directory هم همین کار را راحت تر انجام دهید.

# Protects admin area by IP
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
Order Deny,Allow
Deny from all
Allow from xx.xx.xx.xxx
Allow from yy.yy.yy.yyy
</LIMIT>

۵.غیرفعال کردن امکان مشاهده محتویات پوشه ها (Directory Listing)

این مورد یکی از معمول ترین مشکلات امنیتی سایت هاست که هکر می تواند پوشه ها و فایل های داخل آنها را ببیند و راه نفوذ پیدا کند.خوشبختانه حل این مشکل با یک خط زیر امکان پذیر است

# Prevents directory listing
Options -Indexes

۶.مسدود کردن اسپمرها و ربات ها

# Blocks spammers and bots
<Limit GET POST>
Order Allow,Deny
Deny from xx.xx.xx.xxx
Deny from yy.yy.yy.yyy
</Limit>
Allow from all

۷.جلوگیری از استفاده تصاویر سایت در سایت های دیگر

# Prevents image hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC]
RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

۸.جلوگیری از دسترسی مستقیم به فایل های PHP قالب یا افزونه

این راه توسط شرکت امنیتی Acunetix پیشنهاد شده است .اطلاعات بیشتر

# Restricts access to PHP files from plugin and theme directories
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

۹.مسدود کردن همه دسترسی ها به پوشه wp-includes

داخل این پوشه فقط فایل های هسته وردپرس هستند و هیچ پلاگین ،عکس یا صفحه ای که مورد نیاز کاربران باشد داخل آن نیست پس کلا دسترسی عمومی به آن را مسدود می کنیم

# Blocks all wp-includes folders and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

۱۰.مسدود کردن حملات XSS

# Blocks some XSS attacks
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F,L]
</IfModule>

منبع

در همین رابطه :   آموزش Redirect سایت به آدرس دیگر با htaccess
دسته بندی : هک های وردپرسWordpress

2 نظر

  1. با سلام خیلی عالی بود من اشتباهی فایل htaccessسایتم رو پاک کردم و فقط با آموزش شما تونستم اون رو دوباره راه بندازم واقعا عالی بود ممنون
    کاظمی راد

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

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