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

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

  • فرمت فایل ها را عوض کرد
  • صفحه ها را ریدایرکت کرد
  • مدیریت و نمایش ارور های ۴۰۴,۴۰۰,۴۰۱,۵۰۰,۴۰۳
  • دسترسی فایل تعیین کنید یعنی روی یک فایل پسورد قرار دهید و…
  • آی پی هایی که میخواهید را ببندید

برخی زمان ها ممکن است که کل سایت با ویرایش این فایل غیر فعال شود که مشکل حتما از فایل httpd.conf میباشد که توایع آن غیر فعال است دستورات مشابه آن را میتوان پیدا کرد و جایگزین نمود .
htaccess. فایلی است که ویرایش ان در همه موارد پیشنهاد نمیشود. سایت شما با ویرایش این فایل میتواند بهینه شود و امنیت وردپرس افزایش پیدا کند ولی از طرفی هم میشود امنیت وردپرس کاهش پیدا کند و سایت ها هک شود . فایل htaccess دسترسی ها را تنظیم میکند و این موضوع بسیار اهمیت دارد .
اما تغییرات این فایل باید در پوشه روت هاست خود قرار دهید تا وب سرور آپاچی فایل htaccess را برروی فایل و پوشه های خود قرار دهد .
در صورتی که فایل روت هاست مخفی باشد آن را با توجه به تصویر پایین فعال کنید :

گزینه setting را که زدید گزینه Show Hidden Files را فعال کنید .

خب اگر این گزینه را فعال کردید و چیزی نمایان نشد این فایل وجود ندارد و آن را نسازید :

تا به اینجا همه چیز مرتب شد حالا به ویرایش فایل htaccess میپردازیم.

مسدود کردن ربات مخرب :


کد زیر میتواند ای پی ربات یا یک شخص را محدود یا limit کند . این روش میتواند دسترسی یک خص یا ربات را برای هک شدن ببندد :

# بلوک کردن یک و یا چند آی پی
# به جای IP_ADDRESS آدرس آی پی ربات را قرار دهید
<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

غیر فعال کردن دایرکتوری مرورگر‌ :


از جمله نقص های امنیت وردپرس :
دیدن دایرکتوری در وب سرویس آپاچی از فایل ها میباشد . یعنی تمامی پوشه ها و فایل ها با پسوند های مختلف در داخل دایرکتوری ریشه روت برای کاربران عادی قابل دسترسی است . پوشه wp-content پوشه مادر تمامی فایل ها از جمله افزونه و قالب وردپرس میباشد . برای اینکه این بخش را از دسترسی خارج کنید کد زیر را درون فایل htaccess. قرار دهید .

 # غیر فعال کردن نمایش دایرکتوری وردپرس
Options All -Indexes

تامین امنیت پوشه wp-includes

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

# مسدود سازی پوشه wp-include
<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 شامل فایل هایی است که میتواند چک کند که یک کاربر ورود کرده است یا خیر و اگر ورود کرده بود دسترسی به پیشخوان را آزاد میکند . از همین روی برخی سایت ها هستند که لازم نیستند برای همه افراد ورود را آزاد بگذارند .
از همین جهت میتوانید برای دسترسی امنیت را بیشتر کنید یعنی به بعضی از کاربران دسترسی ورود بدهید : قطعه کد زیر میتواند دسترسی را برای کاربرانی که میخواهید آزاد کنید. یک نکته دیگر این است که یک فایل به نام htaccess. در پوشه wp-admin وبسایت وردپرسی ایجاد کنید و کد زیر را درون آن قرار دهید .زمانی که این فایل درون روت اصلی باشد برعکس میشود یعنی دسترسی برای همه آزاد است جز آی پی هایی که تعریف میکنید :

# محدودیت دسترسی به پیشخوان
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

حفاظت از فایل wp-config.php در htaccess.

فایل wp-config بخشی است که اطلاعات اتصال به پایگاه داده سایت را بر عهده دارد و از همین روی حساس ترین اطلاعات را دارد شما میتوانید با استفاده از کد زیر دسترسی آن را خارج کنید :

# از دسترس خارج کردن فایل wp-confi.php
<files wp-config.php>
order allow,deny
deny from all
</files>

(Image Hot Linking) عدم نمایش تصاویر سایت شما در سایت های دیگر

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://google.com/MlQAH71.jpg [NC,R,L]

تغییر مسیر صفحه در دست تعمیر یه یک صفحه دیگر :

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

# ریدایرکت صفحه در دست تعمیر به صفحه سفارشی شده
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

اختصاصی سازی صفحه 404 یا صفحات مهم


شما میتوانید صفحه اختصاصی برای ارور هایی همچون ارور های ۴۰۴ , ۴۰۳ , ۵۰۰ بسازید که با استفاده از کد زیر میتوانید این ارور ها را به صفحه ای که ساخته اید هدابت کنید :

# صفحه اختصاصی ارورهای 403, 404 و 500
ErrorDocument 404 /error.html
ErrorDocument 403 / error.html
ErrorDocument 500 / error.html

امیدوارم از این آموزش لذت برده باشید .