بهترین قطعه htaccess برای بهبود امنیت وردپرس
امنیت وردپرس یکی از عواملی است که در میان وبلاگ نویسان تازه کار تضعیف شده است. در نصب وردپرس بدون نظارت، تعداد زیادی آسیب پذیری احتمالی وجود دارد که بدون مراقبت رها می شوند. اکثر آموزش های نصب وردپرس یک راه سریع و آسان برای استقرار وردپرس در چند دقیقه را توضیح می دهند. اما آنها چند فاکتور امنیتی مهم را از دست می دهند. به عنوان مثال، مرور دایرکتوری و استفاده از نام کاربری “admin” به عنوان حفره های امنیتی جدی در نظر گرفته می شود. امروز قصد داریم نگاهی به 10 قطعه کد htaccess بیاندازیم که به بهبود امنیت وبلاگ وردپرس شما کمک می کند. قبل از شروع، اجازه دهید نگاهی گذرا به فایل htaccess داشته باشیم.
فایل .htaccess چیست؟
فایل htaccess یک فایل پیکربندی اختیاری برای وب سرور آپاچی برای تفسیر، برای هر دایرکتوری است. شما می توانید تنظیمات مختلفی را در آن فایل ذخیره کنید، مانند: محافظت از یک دایرکتوری با رمز عبور، مسدود کردن IP ها، مسدود کردن یک فایل یا پوشه از دسترسی عمومی و غیره. به طور سنتی، فایل .htaccess در دایرکتوری نصب پایه وردپرس وجود دارد. ساختار پیوند ثابت را به طور پیش فرض ذخیره می کند.
نکته: قبل از شروع آموزش، مطمئن شوید که از فایل htaccess. فعلی (در صورت وجود) در یک سرویس ذخیره سازی ابری مانند Dropbox نسخه پشتیبان تهیه کنید. اگر قطعه کد خاصی سایت شما را خراب کند، این برای بازگشت به آخرین فایل شناخته شده .htaccess است. بیایید شروع کنیم.
1. ربات های بد را مسدود کنید
یکی از بهترین کاربردهای فایل htaccess. توانایی آن در ممانعت از دسترسی چندین آدرس IP به سایت شما است. این هنگام مسدود کردن هرزنامههای شناخته شده و دیگر منابع دسترسی مشکوک یا مخرب مفید است. کد این است:
# یک یا چند آدرس IP را مسدود کنید.
# IP_ADDRESS_* را با IP که می خواهید مسدود کنید جایگزین کنید
دستور اجازه، انکار
رد از IP_ADDRESS_1
رد از IP_ADDRESS_2
اجازه از همه
جایی که IP_ADDRESS_1 اولین IP است که می خواهید از دسترسی به سایت خود جلوگیری کنید. می توانید هر تعداد IP که می خواهید اضافه کنید. مهم نیست که این آدرسهای IP از چه عوامل کاربری (مرورگرها) استفاده میکنند، آنها نمیتوانند به یک فایل واحد از سرور شما دسترسی داشته باشند. وب سرور به طور خودکار همه دسترسی ها را رد می کند.
2. غیرفعال کردن مرور دایرکتوری
این یکی از ضعیفترین نقصهای امنیتی در سایت وردپرس است. به طور پیش فرض، وب سرور آپاچی، مرور دایرکتوری را فعال می کند. این بدان معناست که تمام فایلها و پوشههای داخل دایرکتوری ریشه (که گاهی اوقات دایرکتوری اصلی نیز نامیده میشود) سرور وب، توسط بازدیدکننده قابل ثبت و دسترسی است. شما آن را نمیخواهید زیرا نمیخواهید افراد از طریق آپلودهای رسانهای شما یا فایلهای طرح زمینه یا افزونه شما مرور کنند.
اگر به طور تصادفی 10 وب سایت شخصی یا تجاری را انتخاب کنم که وردپرس را اجرا می کنند، 6 تا 8 مورد از آنها مرور دایرکتوری را غیرفعال نخواهند کرد. این به همه اجازه میدهد تا به راحتی در پوشه wp-content/uploads یا هر فهرست دیگری که فایل پیشفرض index.php را ندارد، بو بکشد. . در واقع، اسکرین شاتی که میبینید از یکی از سایتهای مشتری من است، قبل از اینکه اصلاح را توصیه کنم. قطعه کد برای غیرفعال کردن مرور دایرکتوری:
# غیرفعال کردن مرور دایرکتوری
گزینهها همه فهرستها
3. فقط فایل های انتخاب شده از wp-content
مجاز باشد
همانطور که می دانید wp-content< پوشه /strong> حاوی بیشترین تم ها، پلاگین ها و همه آپلودهای رسانه شما است. مطمئناً نمی خواهید مردم بدون محدودیت به آن دسترسی داشته باشند. علاوه بر غیرفعال کردن مرور دایرکتوری، میتوانید دسترسی به انواع فایلها را نیز ممنوع کنید. در اصل، میتوانید بهطور انتخابی فایلهایی مانند JPG، PDF، DOCX، CSS، JS و غیره را از حالت انسداد خارج کنید و بقیه را رد کنید. برای انجام این کار، این قطعه کد را در فایل .htaccess خود قرار دهید:
# غیرفعال کردن دسترسی به همه انواع فایل به جز موارد زیر
دستور رد، اجازه دهید
انکار از همه
اجازه از همه
شما باید یک فایل .htaccess جدید با کد ایجاد کنید و آن را در پوشه wp-content قرار دهید. این را در دایرکتوری نصب پایه قرار ندهید – در غیر این صورت کار نخواهد کرد. همچنین میتوانید هر نوع فایلی را با اضافه کردن «|» پس از «rar» به لیست اضافه کنید. لیست بالا حاوی فایل های لازم – XML، CSS و جاوا اسکریپت، فرمت های رایج تصویر و سند و در نهایت فرمت های بایگانی پرکاربرد است.
4. محدود کردن همه دسترسی به wp-includes
پوشه wp-includes فقط حاوی فایل هایی است که برای اجرای نسخه اصلی وردپرس کاملاً ضروری هستند – یکی بدون هیچ پلاگین یا تم. به یاد داشته باشید، تم پیشفرض همچنان در فهرست wp-content/theme قرار دارد. بنابراین، هیچ بازدیدکننده ای (از جمله شما) نباید به محتوای پوشه wp-include نیاز داشته باشد. با استفاده از این قطعه کد زیر می توانید دسترسی را غیرفعال کنید:
# مسدود کردن wp-شامل پوشه و فایلها
بازنویسی موتور روشن است
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]
5. فقط به آدرس های IP انتخاب شده اجازه دسترسی به wp-admin
بدهید
پوشه wp-admin حاوی فایلهای مورد نیاز برای اجرای داشبورد وردپرس است. در بیشتر موارد، بازدیدکنندگان شما نیازی به دسترسی به داشبورد وردپرس ندارند، مگر اینکه بخواهند حساب کاربری ثبت کنند. یک اقدام امنیتی خوب این است که فقط چند آدرس IP انتخاب شده را فعال کنید تا به پوشه wp-admin دسترسی داشته باشند. می توانید IP افرادی را که نیاز به دسترسی به داشبورد وردپرس دارند – ویرایشگران، مشارکت کنندگان و سایر مدیران مجاز کنید. این قطعه کد فقط به IP های ثابت اجازه دسترسی به پوشه wp-admin را می دهد و دسترسی به سایر نقاط جهان را رد می کند.
# محدودیت ورود به سیستم و مدیریت توسط IP
<محدود کردن GET POST PUT>
دستور رد، اجازه
انکار از همه
اجازه از 302.143.54.102
اجازه از IP_ADDRESS_2
مطمئن شوید که یک فایل .htaccess جدید ایجاد کرده اید و آن را در پوشه wp-admin و نه دایرکتوری نصب پایه قرار دهید. اگر دومی باشد، هیچ کس به جز شما نمی تواند سایت شما را مرور کند – حتی موتورهای جستجو! شما مطمئناً این را نمی خواهید. یکی دو مورد از افت این معیار به شرح زیر است:
- اگر سایت شما به ثبت نام کاربر جدید اجازه دهد یا تبلیغ کند، پیگیری تعداد کاربران تقریبا غیرممکن خواهد بود. به عنوان مثال در WPExplorer، اگر می خواهید تم های رایگان عالی ما را دانلود کنید، باید ثبت نام کنید.
- افرادی که آدرسهای IP پویا دارند (عمدتاً کاربران پهنباند ADSL از پروتکلهای PPP یا PPPoE استفاده میکنند) هر بار که از سیستم ISP خود خارج میشوند و وارد سیستم میشوند، IP آنها تغییر میکند. مطمئناً پیگیری همه این IPها و افزودن آنها به فایل htaccess غیرعملی است.
- پهن باند تلفن همراه: چه از 3G یا 4G استفاده کنید، آدرس IP شما به برج سلولی فعلی که به آن متصل هستید بستگی دارد. فرض کنید در حال سفر هستید – IP شما با هر چند مایلی که از مبدأ حرکت می کنید دائماً تغییر می کند. باز هم، پیگیری فایل htaccess تقریبا غیرممکن است.
- نقاط اتصال Wi-Fi عمومی: استفاده از اعتبارنامه ها هنگام اتصال به اینترنت با استفاده از یک هات اسپات عمومی Wi-Fi یک نه بزرگ است، زیرا یک بچه با یک نرم افزار کوچک می تواند هر شخصیتی را که تایپ می کنید استخراج کند. . ناگفته نماند که هر نقطه اتصال Wi-Fi یک آدرس IP منحصر به فرد خواهد داشت.
خوشبختانه، تمام این معایب (به استثنای مورد اول) را می توان با استفاده از VPN اصلاح کرد. اگر VPN خود را طوری تنظیم کنید که فقط با استفاده از یک آدرس IP متصل شود، فقط می توانید آن را به فایل htaccess خود اضافه کنید و تمام مشکلات شما حل خواهد شد.
6. از wp-config.php و .htaccess در برابر همه محافظت کنید
فایل wp-config.php حاوی حساس ترین اعتبارنامه های دسترسی سایت وردپرس شما است. این شامل نام پایگاه داده و اعتبار دسترسی و داده های مهم دیگر، در میان تنظیمات دیگر است. تحت هیچ شرایطی نمی خواهید افراد دیگری به این فایل نگاه کنند. و البته، شما می خواهید دسترسی عمومی به منبع همه این امنیت را غیرفعال کنید – خود فایل .htaccess . با این کد زیر می توانید دسترسی به wp-config.php را غیرفعال کنید:
# دسترسی به فایل wp-config.php را رد کنید
<فایل های wp-config.php>
دستور اجازه، انکار
انکار از همه
برای جلوگیری از دسترسی به همه فایلهای htaccess (به یاد داشته باشید که برخی از آنها ممکن است در پوشههای wp-admin و سایر پوشهها قرار داشته باشند)، از این قطعه کد استفاده کنید:
# دسترسی به همه فایلهای .htaccess را ممنوع کنید
<فایلها ~ "^.*.([Hh][Tt][Aa])">
دستور اجازه، انکار
انکار از همه
همه را راضی کند
7. Hotlinking تصویر را رد کنید
یکی از جالبترین هکهای فایل htaccess، این هک محتوا را با دم بین پاهایشان میفرستد. وقتی شخصی از تصویر سایت شما استفاده میکند، پهنای باند شما مصرف میشود و در بیشتر مواقع حتی اعتباری برای آن قائل نمیشوید. این قطعه کد این مشکل را برطرف میکند و هنگامی که یک Hotlink شناسایی شد، این تصویر را ارسال میکند.
# از اسکریپت لینک سازی تصویر جلوگیری کنید. آخرین URL را با هر پیوند تصویری که می خواهید جایگزین کنید.
RewriteEngine روشن است
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://i.imgur.com/MlQAH71.jpg [NC,R,L]
8. ذخیره مرورگر
را فعال کنید
همچنین به عنوان کش کردن سمت مشتری، این هک .htaccess با فعال کردن گزینههای ذخیره مرورگر توصیه شده برای سایت وردپرس شما است. همچنین می توانید از آن در پروژه های دیگر – سایت های HTML و غیره استفاده کنید.
# راه اندازی حافظه پنهان مرورگر
ExpiresActive روشن است
ExpiresByType image/jpg "دسترسی 1 ساله"
ExpiresByType image/jpeg "دسترسی 1 ساله"
ExpiresByType image/gif "دسترسی 1 ساله"
ExpiresByType image/png "دسترسی 1 سال"
ExpiresByType text/css "دسترسی 1 ماهه"
ExpiresByType application/pdf "دسترسی 1 ماهه"
ExpiresByType text/x-javascript "دسترسی 1 ماهه"
ExpiresByType application/x-shockwave-flash "دسترسی 1 ماهه"
ExpiresByType image/x-icon "دسترسی 1 سال"
Expires پیش فرض "دسترسی 2 روز"
9. تغییر مسیر به صفحه تعمیر و نگهداری
هنگامی که میزبانهای وب را مهاجرت میکنید یا کارهای تعمیر و نگهداری را انجام میدهید، همیشه توصیه میشود که یک فایل HTML ثابت «down for maintenance» ایجاد کنید تا به بازدیدکنندگان خود اطلاع دهید که وبسایت در حال ارتقا یا تعمیر است. به سادگی یک فایل maintenance.html (یا هر نام فایل دیگری) ایجاد کنید و آن را در فهرست اصلی نصب وردپرس آپلود کنید. قطعه زیر را در فایل htaccess. خود جایگذاری کنید. پس از پایان عملیات، مطمئن شوید که این خطوط را حذف کرده یا نظر دهید تا به عملیات کلی برگردید. میتوانید با اضافه کردن «#» در ابتدای هر خط نظر بدهید.
# هدایت تمام ترافیک به فایل maintenance.html
RewriteEngine روشن است
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L]
10. صفحات خطای سفارشی
همچنین میتوانید فایل htaccess را برای پیکربندی صفحات خطای سفارشی کاربرپسند برای خطاهایی مانند 403، 404 و 500 پیکربندی کنید. هنگامی که صفحه خطای خود را آماده کردید – مثلا error.html، آن را در فهرست اصلی نصب وردپرس خود آپلود کنید. . سپس قطعه کد زیر را به فایل htaccess. خود اضافه کنید تا صفحه خطای سفارشی فعال شود:
# صفحه خطای سفارشی برای خطاهای 403، 404 و 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html
نتیجه گیری:
امروز ما تعدادی از جالب ترین هک های htaccess را برای تقویت سایت وردپرس شما یاد گرفتیم. من به شما پیشنهاد می کنم که قبل و بعد از آزمایش هر ماژول در حین تهیه نسخه پشتیبان از فایل htaccess. تک تک ماژول ها را امتحان کنید. این به این دلیل است که فایل htaccess بسیار مهم است. یک کاراکتر «#» از دست رفته یا «» نادرست میتواند یکپارچگی سایت شما را از بین ببرد. اگر مرتباً در حال حرکت به داشبورد وردپرس خود دسترسی دارید، توصیه می شود IP های انتخابی را در پوشه wp-admin خود فعال نکنید.
به شما – نظر شما در مورد این پست چیست؟ آیا به نظر شما این ارزش زحمت ویرایش فایل htaccess را دارد؟ آیا نکته امنیتی بهتری سراغ دارید؟ ما دوست داریم از شما بشنویم.