آموزش وردپرس
موضوعات داغ

15 دستور مفید در .htaccess برای وردپرس

کانفیگ صحیح فایل .htaccess برای ارتقاء امنیت سایت وردپرسی شما و نیز کاهش آسیب پذیری آن حیاتی است. به طور معمول هدف اصلی از ایجاد یک فایل .htaccess سفارشی، ارتقاء امنیت و در نتیجه ممانعت از هک وب سایت است اما همچنین میتواند یک روش عالی برای مدیریت ریدایرکت ها و نیز مدیریت وظایف مرتبط با کش باشد.

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

در این مقاله مجموعه ای از دستورات بسیار مفید و کاربردی را برای .htaccess می یابید که اکثرا به ارتقاء امنیت وبسایت شما کمک می کند.

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

در صورتی که شما از آن دسته از افراد هستید که نگران ایجاد تغییر به صورت دستی در .htaccess هستند، استفاده از پلاگین BulletProof Security را که یکی از قدیمی ترین و همچنین قابل اعتمادترین پلاگین های امنیتی رایگان موجود برای وردپرس است را به شما پیشنهاد می کنیم.

ساخت فایل .htaccess با محتویات پیشفرض برای وردپرس

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

در ادامه شما میتوانید محتویات پیشفرض فایل .htaccess را برای وردپرس ببینید:

خط اول با # کامنت شده است. توجه کنید هیچ چیزی را بین # BEGIN WordPress و # END WordPress ویرایش نکنید و کد مورد نظر خود را زیر این دستورات پیشفرض قرار دهید.

تمام دستوراتی که در ادامه می اید باید در فایل .htaccess موجود در ریشه سایت شما قرار گیرد.

1- منع کردن Deny دسترسی به تمام فایلهای .htaccess موجود

دستور زیر دسترسی به تمام فایل های .htaccess موجود در وردپرس شما را منع Deny می کند. با  این روش شما مانع دیده شده فایل پیکربندی وب سرور توسط دیگران می شوید.

 

2- محافظت از فایل کانفیگ وردپرس

فایل wp-config.php دربردارنده تمام اطلاعات پیکربندی وردپرس شماست و همچنین محتوی نام کاربری و پسورد دیتابیس شما نیز هست.شما می توانید دسترسی همه را به این فایل قطع کنید و یا فقط به مدیر مجوز دسترسی بدهید.

اگر # را از ابتدای # Allow from xx.xx.xx.xxx در کدی زیر بردارید و ip مدیر را جایگزین xx.xx.xx.xxx نمایید، تنها مدیر امکان دسترسی به این فایل را خواهد داشت.

3- ممانعت از حملات DDOS به XML-RPC

وردپرس به طور پیشفرض از XML-RPC پشتیبانی می کند. که در واقع یک اینترفیس است که ارسال مطالب از راه دور را ممکن می سازد.در هرحال در عین حال که یک امکان خوب است یکی از بزرگترین آسیب پذیری های وردپرس نیز به شما می آید که می تواند زمینه ای برای حملات DDOS باشد.

اگر شما تمایلی به استفاده از این قابلیت ندارید کافی است آنرا با دستورات زیر غیرفعال کنید.درست مثل دستور قبلی به همان روش می توانید دسترسی را برای مدیر باز بگذارید.

 

4- بخش مدیریت وردپرس را امن کنید

محدود کردن دسترسی به بخش مدیریت وردپرس تنها برای مدیران سایت می تواند ایده خوبی برای ارتقاء امنیت وردپرس باشد.

فراموش نکنید رول Allow با ip مدیر قرار دهید در غیر این صورت دسترسی به بخش مدیریت کاملا بسته خواهد شد.

5- جلوگیری از لیست شدن محتویات دایرکتوری

اکثر وبسایت های وردپرسی لیست شدن دایرکتوری را غیرفعال نکرده اند، این بدان معنی است که هر کسی میتواند دایرکتوری ها و فایلهای آنها را مرور کند! باید گفت این یک باگ امنیتی بسیار خطرناک است.

در تصویر زیر می بینید، محتویات یک فولدر وردپرس چطور نمایش داده می شود:

directory listing
directory listing

خوشبختانه شما تنها به اضافه کردن یک خط نیاز دارید تا این امکان را غیرفعال کنید، این کد باعث می شود هر کسی قصد مرور محتویات فولدرها را داشته باشد با خطای 403 مواجه شود.

6- ممانعت از شمارش کاربران مدیر

اگر پیوندهای یکتای وردپرس فعال باشد، به آسانی میتوان نام کاربری کاربران مدیر سایت را با مرور آرشیو مطالب نویسندگان سایت کشف کرد! یافتن نام کاربری مدیران سایت (که شامل مدیرکل سایت نیز میشود) اولین مرحله برای حملات brute force می باشد.

از کد زیر برای ممانعت از مرور و یافتن نام کاربری مدیران سایت استفاده کنید:

7-مسدود کردن ربات ها و اسپم ها

ممکن است شما بخواهید دسترسی به سایت را از یک ip خاص مسدود کنید و در نتیجه با مسدود کردن ip ربات ها و اسپم هایی که شناسایی کرده اید دسترسی آنها را نیز به سایت قطع نمایید.

دستورات زیر به این منظور به کار می روند:

8- ممانعت از hotlinking تصاویر سایت شما

گرچه تهدید امنیتی نیست، اما hotlinking تصاویر یک امر آزاردهنده است. افراد نه تنها از تصاویر سایت شما بدون کسب مجوز استفاده می کنند بلکه به حساب شما این کار را انجام می دهند!

با این چند کد ساده شما می توانید از hotlinking تصاویر بر روی سایتتان ممانعت کنید:

9- محدود کردن دسترسی مستقیم به فایلهای php قالب و پلاگین های وردپرس

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

کدهای زیر می تواند در این مورد به شما کمک کنند:

10- تنظیم تغییر مسیر دایمی

شما به راحتی می توانید تغییر مسیر لینکها را توسط .htaccess مدیریت کنید. ابتدا باید مسیر قدیمی را وارد کنید و سپس مسیر جدیدی که مایلید کاربر به آن هدایت شود.

 

11- بازدیدکنندگان را به صفحه maintenance (درحال تعمیر) هدایت کنید

شما باید ابتدا یک صفحه تعمیرات مثلا با نام maintenance.html  ایجاد کنید و سپس با دستورات زیر بازدید کننده سایت را به صفحه تعمیرات هدایت کنید.

 

12- مسدود کردن تماس دسترسی ها به WP includes

فولدر /wp-includes/ فایل های هسته وردپرس را در بردارد که سیستم مدیریت محتوا برای کار کردن به آنها احتیاج دارد. در واقع این محتویات، قالب یا پلاگین و یا محتوایی نیست که لازم باشد کاربر به آن دسترسی داشته باشد. پس برای کسب امنیت در سطح بالاتر تمام دسترسیها به این فولدر را می بندیم.

 

13- مسدود کردن حملات تزریق کد (Cross Site Scripting) – XSS

دستورات زیر می تواند جلوی برخی از حملات معمول تزریق کد XSS را بگیرد:

14- فعال کردن کش مرورگر

همانطور که در ابتدای این مقاله هم گفتیم، هدف اصلی از شخصی سازی فایل .htaccess ارتقاء امنیت سایت است اما در کنار آن می توان برای مدیریت تنظیمات کش نیز از آن بهره برد. کدی که در ادامه خواهد آمد کش مرورگر بازدید کننده را فعال خواهد کرد و مرورگر کاربر را وادار می کند تا فایلهای ثابت را یک بار دانلود و ذخیره نماید و در نتیجه لازم نباشد هر بار این فایل ها دانلود شود.

 

15- تنظیم صفحات خطای شخصی سازی شده

همیچنین می توانید از .htaccess برای تنظیم صفحات خطای دلخواه برای وردپرس نیز استفاده کنید. برای پیاده سازی این روش، شما در ایتدا نیاز دارید تا صفحات خطا را ایجاد کنید. (custom-403.html, custom-404.html در این مثال) و آن ها را در ریشه وردپرس خود آپلود نمایید.

شما میتوانید صفحه دلخواه خود را برای تمامی خطای معمول http یعنی (4XX and 5XX status codes) ایجاد کنید.

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

در صورتی که سوالی در مورد این مطلب دارید و یا مایلید چیزی به این مقاله اضافه کنید خوشحال می شویم در بخش نظرات آنها را مطرح نمایید.

برچسب ها

نوشته های مشابه

‫8 نظرها

  1. سلام
    برای پچ کردن clickjacking من از گیت هاب یه تگ دیدم به ادرس :
    https://gist.github.com/rbl00/7993166
    که یه تگ بود :
    #
    # Header set X-Frame-Options “DENY”
    #
    # Header unset X-Frame-Options
    #
    #
    گذاشتمش توی .htaccess اما باز پچ نشد
    ممنون میشم راهنمایی کنید در مورد این باگ و نحوه پچ کردنش !!

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

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

بستن