آموزش افزایش امنیت وردپرس با فایل .htaccess

آموزش افزایش امنیت وردپرس با فایل .htaccess

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

راه های بسیاری برای افزایش امنیت وردپرس وجود دارد، مانند نصب افزونه های امنیتی، جلوگیری از نصب افزونه ها و پوسته های نال شده و یا… می باشد. امروز قصد داریم در این سری مطالب آموزش وردپرس، به آموزش افزایش امنیت وردپرس با فایل .htaccess بپردازیم. اما قبل از هرچیزی اجازه بدید اول ببینیم که اصلا فایل .htaccess چیست؟

فایل .htaccess چیست؟

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

هم چنین شما می تواندید توسط این فایل تنظیمات دیگری را بر روی سایت تان اعمال کنید، مانند بازنویسی ساختار پیوند های یکتای سایت، کنترل کش، اعتبار سنجی، بهینه سازی سایت وردپرس و… .

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

غیر فعال کردن امکان دسترسی و دسترسی به دایرکتوری ها

غیر فعال کردن امکان دسترسی و دسترسی به دایرکتوری ها

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

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

 

# Disable directory browsing
Options All -Indexes

 

دسترسی به فایل های دایرکتوری با ایجاد محدودیت

غیر فعال کردن امکان دسترسی با محدودیت به دایرکتوری ها

همان طور که می دانید پوشه ی wp-content دارای فایل های بسیار اعم از تصاویر، افزونه ها، قالب سایت تان و فایل های ویدئویی و… می باشد، در این مرحله می توانید با اعمال دسترسی به برخی فایل ها، به بازدید کنندگان سایت تان اجازه دهید که به برخی فایل های روی هاست تان دسترسی داشته و یا آن ها را ذخیره کنند. به عنوان مثال می توانید اجازه دهید بازدید کنندگان به برخی فایل ها با پسوند های مختلف مانند JPG, PDF, DOCX, CSS, JS و یا… دسترسی داشته باشند. برای ان کار تنها کافی است کد زیر را در  فایل .htaccess جای گذاری کنید و پسوند هایی که تمایل دارید افراد به آن ها دسترسی داشته باشند را در آن قرار دهید.

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

قطع کامل دسترسی به فایل wp-includes

فایل wp-includes دارای فایل هایی می باشد که وردپرس را به صورت پیش فرض و بدون پلاگین و یا قالبی راه اندازی می کند. هیچ بازدید کننده ای حتی خود شما نیز نباید به این فایل ها دسترسی داشته باشید. به همین سبب می توانید با جایگذاری کد زیر در فایل .htaccess جای گذاری کنید تا دسترسی به این پرونده محدود شده و هیچ شخصی نتواند به ان دسترسی داشته و یا فایل های آن را حتی ببیند.

# Block wp-includes folder 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>

اجازه دسترسی به wp-admin تنها به آی پی های مجاز

اجازه دسترسی به wp-admin تنها به آی پی های مجاز

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

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

برای این کار باید یک فایل .htaccess جدید ساخته و آن را در پوشه wp-admin قرار دهید. دقت کنید نسخه ی اصلی این فایل که در پوشه اصلی روت قرار دارد با این فایل جدا است.

محافظت از فایل های wp-config.php و .htaccess 

فایل wp-config.php دارای حیاتی ترین اطلاعات سایت شما شامل اطلاعات دسترسی وب سایت وردپرس شما را دارا است. این فایل دارای تمامی تنظیمات، نام و رمز دیتابیس شما وبسیاری اطلاعات مهم از سایت شما است، بنابراین تحت هیچ شرایطی شما نمی خواهید که هیچ شخص دیگری جز شما به این فایل دسترسی داشته باشد. و در نتیجه هم باید دسترسی را به صورت کامل نسبت به فایل .htaccess که هسته امنیتی این ترفند های امنیتی است ببندید.

برای محدود کردن دسترسی به فایل wp-config.php، تنها کافی است دستور زیر را وارد کنید :

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>

همچنین برای عدم دسترسی افراد دیگر به فایل .htaccess می توانید کد زیررا جای گذاری کنید :

# Deny access to all .htaccess files
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

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

فعال کردن کش مرورگر ها در وردپرس با فایل .htaccess

در این ترفند به شما آموزش می دیم که چگونه می توانید با قرار دادن یک کد در فایل .htaccess چگونه می توانید کش مرورگر ها را با اعمال یک سری تنظیمات در سایت وردچرس تان فعال کنید. برای این کار تنها کافی است که کد زیر را در فایل .htaccess جای گذاری کنید :

# Setup browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

ریداریکت به صفحه تعمیرات

ریدایرکت به صفحه تعمیرات با ویرایش فایل .htaccess

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

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L] 

فراموش نکنید که پس از اتمام عملیات، باید کد را از داخل فایل .htaccess پاک کنید. البته می توانید با قرار دادن # در ابتدای هر کدام از خطوط کد را غیر فعال کنید.

صفحات خطای 404 سفارشی

هم چنین می توانید علاوه بر ترفند هایی که معرفی کردیم، صفحاتی سفارشی برای خطاهای 404، 403، 500 در نظر بگیرید. زمانی که صفحه مورد نظر را طراحی و آماده کردید، آن را درون فایل به عنوان مثال با نام error.html درون دایرکتوری وردپرس آپلود کنید. سپس تنها کافی است که کد زیر را در فایل .htaccess درون دایرکتوری اصلی وردپرس جای گذاری کنید.

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

امروز ترفند های مختلفی را برای افزایش امنیت وردپرس با فایل .htaccess با هم یاد گرفتیم. پیشهاد ما این است که قبل و بعد از هر ترفندی که گفتیم از فایل .htaccess یک بکاپ تهیه کنید، تا در صورت بوجود امدن مشکل بتوانید فایل سالم قدیمی را با فایل جدید که خراب شده است جایگزین کنید. یک # اضافه و یا ‘</IfModule>’ که به صورت نادرست جاگذاری شده است می تواند تمام سازگاری و انعطاف سایت شما را از بین ببرد. به همین دلیل فایل .htaccess یکی از مهم ترین فایل های وردپرس و سایت شما می باشد که باید در نگه داری از آن دقت داشته باشید.

, , ,

مطالب مرتبط

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

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

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

فهرست