افزایش امنیت وردپرس با htaccess (راهنمای کامل و تخصصی)

امنیت وردپرس با htaccess
فهرست مطالب

اگر وردپرس را مثل یک ساختمان در نظر بگیریم، افزونه‌های امنیتی مثل نگهبان‌هایی هستند که داخل ساختمان ایستاده‌اند؛ اما فایل .htaccess در واقع درِ ورودی ساختمان، سیستم قفل‌ها و قوانین ورود و خروج است. یعنی قبل از اینکه اصلاً وردپرس اجرا شود، این فایل تصمیم می‌گیرد چه کسی اجازه عبور دارد و چه کسی نه.

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

در این راهنمای جامع یاد می‌گیریم چطور با استفاده از htaccess:

  • دسترسی به مدیریت وردپرس را محدود کنیم
  • یک لایه رمز دوم روی wp-admin بگذاریم
  • جلوی مشاهده ساختار پوشه‌های سایت را بگیریم
  • از فایل‌های حیاتی مثل wp-config محافظت کنیم
  • مسیرهای رایج نفوذ هکرها را ببندیم
  • حملات SQL Injection، XSS و Brute Force را کاهش دهیم
  • از منابع سرور در برابر سوءاستفاده محافظت کنیم

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

فایل htaccess چیست و دقیقاً چه کاری انجام می‌دهد؟

فایل .htaccess یک فایل پیکربندی برای وب‌سرورهای Apache و LiteSpeed است. این فایل داخل هاست و معمولاً در ریشه نصب وردپرس (public_html) قرار دارد. نکته مهم اینجاست که این فایل بدون نیاز به دسترسی روت سرور، اجازه می‌دهد قوانین سطح سرور تعریف کنید.

به زبان ساده، htaccess به سرور می‌گوید:

  • چه درخواست‌هایی مجاز هستند
  • چه درخواست‌هایی باید رد شوند
  • چه فایل‌هایی قابل دسترسی باشند
  • چه مسیرهایی محدود شوند
  • چه قوانین امنیتی اجرا شود

تفاوت مهم اینجاست که این تصمیم‌ها قبل از اجرای PHP و وردپرس گرفته می‌شود. بنابراین:

✔ حمله زودتر متوقف می‌شود
✔ منابع سرور کمتر مصرف می‌شود
✔ هکر حتی به لایه وردپرس نمی‌رسد

به همین دلیل، تنظیمات امنیتی در htaccess یکی از مؤثرترین روش‌های افزایش امنیت وردپرس محسوب می‌شود.

قبل از ویرایش htaccess حتماً این نکات را بدانید ⚠

فایل htaccess بسیار قدرتمند است، اما کوچک‌ترین اشتباه در آن می‌تواند کل سایت را از دسترس خارج کند. بنابراین قبل از هر تغییری:

  1. حتماً بکاپ بگیرید
    یک نسخه از فایل فعلی دانلود کنید.
  2. کدها را دقیق کپی کنید
    حتی یک کاراکتر اشتباه ممکن است خطای 500 ایجاد کند.
  3. اگر سایت بالا نیامد
    فایل را به نسخه قبلی برگردانید.
  4. این روش مخصوص Apache و LiteSpeed است
    اگر سرور شما Nginx باشد، این کدها عمل نمی‌کنند.

محدود کردن دسترسی به مدیریت وردپرس فقط برای IPهای مشخص

یکی از اصلی‌ترین اهداف حملات هکری در وردپرس، صفحه مدیریت است. تقریباً تمام حملات Brute Force (تلاش مکرر برای حدس رمز عبور) و بسیاری از اسکن‌های امنیتی روی این مسیرها انجام می‌شود:

/wp-admin
/wp-login.php

حالا یک سؤال ساده:
اگر فقط خودتان یا اعضای تیم باید وارد مدیریت شوند، چرا کل اینترنت باید بتواند حتی به صفحه ورود دسترسی داشته باشد؟

اینجاست که محدودسازی بر اساس IP تبدیل به یک دیوار امنیتی بسیار قدرتمند می‌شود.

این روش دقیقاً چطور کار می‌کند؟

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

❌ اگر IP در لیست مجاز نباشد → دسترسی کاملاً رد می‌شود
✅ اگر IP مجاز باشد → اجازه ورود می‌گیرد

یعنی ربات‌ها، هکرها و اسکنرها اصلاً به صفحه لاگین نمی‌رسند.

کد محدودسازی IP برای مدیریت وردپرس

کد زیر را داخل فایل .htaccess اصلی سایت (در روت هاست) قرار دهید:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic

<RequireAll>
Require all denied
Require ip xx.xx.xx.xxx
Require ip xx.xx.xx.xxx
</RequireAll>

توضیح خط به خط (به زبان ساده)

deny from all
یعنی همه کاربران اینترنت به صورت پیش‌فرض مسدود هستند.

allow from xx.xx.xx.xxx
یعنی فقط IPهایی که اینجا وارد می‌کنید مجازند.

شما می‌توانید چند IP مختلف اضافه کنید؛ مثلاً:

  • IP منزل
  • IP محل کار
  • IP همکار یا مدیر سایت

چطور IP خودمان را پیدا کنیم؟

در گوگل بنویسید:
What is my IP

عدد نمایش داده شده همان IP شماست.

نکته بسیار مهم ⚠

این روش برای سایت‌هایی که کاربران عمومی ثبت‌نام و ورود دارند مناسب نیست. چون کاربران دیگر نمی‌توانند وارد حساب خود شوند.

این روش مخصوص سایت‌هایی است که:

  • مدیریت فقط توسط یک یا چند نفر انجام می‌شود
  • سایت شرکتی یا شخصی است
  • دسترسی مدیریتی محدود است

مزیت امنیتی این روش

بدون محدودیت IPبا محدودیت IP
هر رباتی می‌تواند حمله کندفقط IPهای مجاز به لاگین می‌رسند
حملات Brute Force ادامه داردحمله قبل از شروع متوقف می‌شود
مصرف منابع سرور بالادرخواست‌های مخرب حذف می‌شوند

این یکی از مؤثرترین روش‌های امنیتی سطح سرور است که حتی بسیاری از سایت‌های بزرگ هم از آن استفاده می‌کنند.

گذاشتن رمز دوم روی پوشه wp-admin (لایه امنیتی سطح سرور)

در حالت عادی وقتی کسی وارد /wp-admin می‌شود، مستقیماً صفحه ورود وردپرس را می‌بیند. یعنی تنها سد امنیتی، نام کاربری و رمز وردپرس است.

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

هکر باید دو مرحله امنیتی را رد کند
(رمز سرور + رمز وردپرس)

این روش یکی از استانداردهای امنیتی در سرورهای حرفه‌ای است.

این روش چگونه کار می‌کند؟

وقتی کاربر به wp-admin مراجعه کند:

  1. سرور ابتدا یک پنجره ورود (Basic Auth) نشان می‌دهد
  2. اگر رمز صحیح وارد نشود → دسترسی کاملاً قطع می‌شود
  3. اگر صحیح باشد → تازه به صفحه ورود وردپرس می‌رسد

یعنی حتی اگر کسی رمز وردپرس را بداند، بدون عبور از مرحله اول نمی‌تواند وارد شود.

مرحله ۱: ساخت فایل رمز (.htpasswds)

در هاست باید یک فایل رمز بسازید. معمولاً از طریق:

cPanel → Directory Privacy / Password Protect Directories

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

این فایل معمولاً در مسیری شبیه این ذخیره می‌شود:

/home/username/.htpasswds/public_html/wp-admin/passwd

مرحله ۲: ساخت فایل htaccess داخل پوشه wp-admin

حالا داخل پوشه wp-admin یک فایل .htaccess جدید بسازید (جدا از htaccess اصلی سایت) و کد زیر را قرار دهید:

AuthName "Admins Only"
AuthUserFile /home/USERNAME/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType Basic
require user username

<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>

توضیح بخش‌های مهم کد

AuthUserFile
مسیر فایل رمز ساخته شده است. باید دقیقاً همان مسیر فایل تولید شده در هاست باشد.

USERNAME باید نام کاربری هاست شما باشد؛ مسیر در هر سرور ممکن است متفاوت باشد.

require user username
نام کاربری که در مرحله ساخت رمز تعریف کردید.

admin-ajax.php باز گذاشته شده
بسیاری از افزونه‌ها و قالب‌ها از این فایل استفاده می‌کنند. اگر بسته شود، بخش‌هایی از سایت از کار می‌افتد.

مزیت امنیتی این روش

بدون رمز دومبا رمز دوم
فقط رمز وردپرس محافظت می‌کنددو لایه امنیتی فعال است
حملات Brute Force مستقیم انجام می‌شودحمله قبل از رسیدن به وردپرس متوقف می‌شود
امکان حدس رمز بیشتر استهکر باید دو رمز مستقل را بشکند

چه زمانی این روش عالی است؟

✔ سایت شرکتی
✔ سایت شخصی
✔ مدیریت محدود
✔ پروژه‌های مهم

چه زمانی احتیاط کنیم؟

اگر از سرویس‌هایی مثل Jetpack یا برخی APIهای خارجی استفاده می‌کنید، ممکن است نیاز به تنظیمات اضافه باشد.

این روش، امنیت مدیریت وردپرس را چندین برابر می‌کند و جلوی اکثر تلاش‌های نفوذ را در همان مرحله سرور متوقف می‌کند.

جلوگیری از نمایش لیست فایل‌ها و پوشه‌ها (Directory Listing)

یکی از اشتباهاتی که در بسیاری از سایت‌ها دیده می‌شود این است که اگر کاربری وارد مسیری شود که فایل index ندارد، سرور لیست کامل فایل‌ها و پوشه‌های داخل آن مسیر را نمایش می‌دهد.

مثلاً اگر این قابلیت فعال باشد، ممکن است کاربر بتواند چنین چیزی ببیند:

/wp-content/uploads/
/wp-content/plugins/
/backup/

و داخل آن‌ها فایل‌ها را مشاهده کند. این یعنی لو رفتن ساختار داخلی سایت؛ چیزی که هکرها عاشق آن هستند.

چرا این موضوع خطرناک است؟

وقتی ساختار پوشه‌ها مشخص شود، مهاجم می‌تواند:

  • مسیر فایل‌های مهم را شناسایی کند
  • نسخه‌های بکاپ فراموش‌شده را پیدا کند
  • افزونه‌های نصب‌شده را تشخیص دهد
  • فایل‌های قدیمی یا آسیب‌پذیر را کشف کند

در واقع ساختار داخلی سایت را در اختیار مهاجم قرار می‌دهید.

راه‌حل: غیرفعال کردن Directory Listing (نمایش لیست فایل‌های داخل پوشه)

کافی است این کد را در فایل .htaccess اصلی سایت قرار دهید:

Options -Indexes

این کد چه کاری انجام می‌دهد؟

وقتی کاربری وارد مسیری بدون فایل index شود:

❌ به جای دیدن لیست فایل‌ها
✅ خطای دسترسی (Forbidden) دریافت می‌کند

یعنی سرور می‌گوید:

«محتوای این پوشه قابل نمایش نیست.»

مزیت امنیتی این تنظیم

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

این تنظیم بسیار ساده است، اما جلوی یکی از مراحل اصلی شناسایی سایت توسط مهاجم را می‌گیرد.

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

فایل wp-config.php قلب وردپرس است. داخل این فایل اطلاعات بسیار حساس ذخیره می‌شود:

  • نام و آدرس دیتابیس
  • نام کاربری دیتابیس
  • رمز دیتابیس
  • کلیدهای امنیتی وردپرس
  • پیشوند جداول و برخی تنظیمات حیاتی

اگر این فایل لو برود، هکر می‌تواند تقریباً کنترل کامل سایت شما را به دست بیاورد.

چرا این فایل هدف اصلی هکرهاست؟

  1. شامل اطلاعات اتصال به دیتابیس است
  2. به کمک آن می‌توانند به راحتی وارد سایت شوند
  3. از این فایل می‌توانند برای تزریق کد مخرب استفاده کنند

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

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

کافی است این کد را در فایل .htaccess اصلی سایت قرار دهید:

<Files wp-config.php>
Require all denied
</Files>

توضیح ساده:

  • order allow,deny → ابتدا اجازه‌ها بررسی شود سپس رد شود
  • deny from all → همه کاربران اینترنت دسترسی ندارند

نتیجه: هیچ کاربری نمی‌تواند مستقیم از مرورگر به این فایل دسترسی پیدا کند.

نکات حرفه‌ای

  • این کد باید در ریشه وردپرس قرار گیرد
  • هیچ افزونه یا تنظیمی نباید این دسترسی را باز کند
  • حتی هکرهایی که مسیر فایل را بدانند، بدون دسترسی سرور، نمی‌توانند محتویات را مشاهده کنند

مزیت امنیتی این کار

بدون محافظتبا محافظت htaccess
هر کسی می‌تواند فایل را مشاهده کندفایل کاملاً مخفی می‌شود
امکان هک دیتابیس بالا استدسترسی مستقیم غیرممکن می‌شود
سایت آسیب‌پذیریکی از حیاتی‌ترین مسیرهای نفوذ بسته می‌شود

این مرحله، پایه‌ای‌ترین و حیاتی‌ترین اقدام امنیتی است که هر سایت وردپرسی باید انجام دهد.

مسدود کردن XML-RPC و جلوگیری از حملات Brute Force

فایل xmlrpc.php در وردپرس برای ارتباطات خاص مثل اپلیکیشن موبایل وردپرس، Jetpack و برخی APIها استفاده می‌شود. اما متأسفانه، یکی از بزرگ‌ترین منابع حملات Brute Force و DDoS است.

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

چرا XML-RPC خطرناک است؟

  1. امکان ارسال درخواست‌های متعدد برای حدس رمز عبور وجود دارد
  2. می‌توان با آن سایت را در معرض حملات DDoS قرار داد
  3. بسیاری از هکرها از این مسیر برای نفوذ استفاده می‌کنند

یعنی حتی اگر مدیریت وردپرس کاملاً ایمن باشد، این مسیر بدون محافظت می‌تواند سایت را تهدید کند.

راه‌حل: مسدود کردن xmlrpc.php با htaccess

کافی است این کد را در فایل .htaccess اصلی سایت قرار دهید:

<Files xmlrpc.php>
Require all denied
</Files>

توضیح ساده:

  • همه درخواست‌ها به این فایل رد می‌شوند
  • هیچ کاربری نمی‌تواند از مرورگر یا ربات‌ها به آن دسترسی پیدا کند
  • اگر بعداً نیاز به اتصال API داشتید، می‌توان دسترسی را به IP مشخص محدود کرد

مزیت امنیتی

بدون محدودیتبا محدودیت XML-RPC
هکرها به راحتی Brute Force می‌کنندحملات Brute Force قبل از رسیدن به وردپرس متوقف می‌شود
سایت در معرض DDoS استسایت امن‌تر می‌شود
امکان نفوذ بالا استمسیر اصلی نفوذ بسته می‌شود

با این مرحله، یکی از محبوب‌ترین درگاه‌های هک وردپرس بسته شد و سایت شما امنیت بسیار بالاتری پیدا می‌کند.

جلوگیری از اجرای فایل‌های PHP در پوشه‌های غیرضروری (Uploads و wp-includes)

پوشه‌های /wp-content/uploads/ و /wp-includes/ برای ذخیره فایل‌های رسانه‌ای و فایل‌های سیستمی وردپرس استفاده می‌شوند. اما مشکل اینجاست که اگر هکر بتواند یک فایل PHP مخرب در این مسیرها آپلود کند، می‌تواند بدون محدودیت آن را اجرا کند و کنترل سایت را به دست بگیرد.

راه‌حل: جلوگیری از اجرای PHP

۱. پوشه uploads

در مسیر /wp-content/uploads/ یک فایل .htaccess جدید بسازید و این کد را داخل آن قرار دهید:

<FilesMatch "\.php$">
Require all denied
</FilesMatch>

نتیجه:

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

۲. پوشه wp-includes

برای جلوگیری از اجرای فایل‌های PHP سیستم، در فایل .htaccess اصلی سایت (روت وردپرس) این کد را اضافه کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-includes/.*\.php$ - [F,L]
</IfModule>

نتیجه:

  • تمام فایل‌های PHP در wp-includes که نباید مستقیم اجرا شوند، مسدود می‌شوند
  • جلوی سوءاستفاده از اسکریپت‌های هسته وردپرس گرفته می‌شود

مزیت امنیتی این مرحله

بدون این کدبا این کد
هکر می‌تواند فایل PHP مخرب آپلود و اجرا کندهیچ فایل PHP غیرمجاز اجرا نمی‌شود
امکان دسترسی به هسته سایت بالا استدسترسی غیرمجاز به هسته محدود می‌شود
سایت آسیب‌پذیر می‌ماندیکی از مسیرهای نفوذ مهم بسته می‌شود

با انجام این مرحله، سایت شما در برابر آپلود شل‌ها و اسکریپت‌های مخرب بسیار مقاوم خواهد بود.

جلوگیری از Hotlinking تصاویر و محافظت از پهنای باند سرور

Hotlinking (استفاده مستقیم سایت‌های دیگر از تصاویر سرور شما) زمانی اتفاق می‌افتد که سایت‌های دیگر، تصاویر یا فایل‌های شما را مستقیماً از سرور شما نمایش دهند. یعنی تصویر شما روی سایت آن‌ها نشان داده می‌شود، ولی پهنای باند و منابع سرور شما مصرف می‌شود.

این نه تنها پهنای باند شما را هدر می‌دهد، بلکه در برخی موارد می‌تواند سایت شما را کند کند و حتی باعث شود سرور شما از دسترس خارج شود.

راه‌حل: مسدود کردن Hotlinking با htaccess

کد زیر را در فایل .htaccess اصلی سایت قرار دهید:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yoursite\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F]

توضیح ساده:

  1. RewriteCond %{HTTP_REFERER} !^$ → درخواست‌هایی که بدون منبع (Referrer) هستند، بررسی می‌شوند
  2. RewriteCond %{HTTP_REFERER} !^https?://(www.)?yoursite.com [NC] → فقط سایت خود شما مجاز است
  3. RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F] → اگر سایت دیگر بخواهد تصویر را نمایش دهد، دسترسی رد می‌شود (Forbidden)

مزیت امنیتی و عملیاتی

بدون Hotlink Protectionبا Hotlink Protection
سایت‌های دیگر پهنای باند شما را مصرف می‌کنندپهنای باند شما محفوظ می‌ماند
تصاویر شما روی سایت‌های دیگر نمایش داده می‌شودفقط سایت خودتان می‌تواند تصاویر را نمایش دهد
سرور کند می‌شود و منابع هدر می‌رودسرور امن و سریع باقی می‌ماند

این مرحله باعث می‌شود نه تنها امنیت، بلکه هزینه و منابع سرور نیز بهینه شود.

محدود کردن متدهای HTTP و جلوگیری از حملات غیرعادی

هر بار که مرورگر یا ربات به سایت شما درخواست می‌دهد، یک متد HTTP استفاده می‌شود. رایج‌ترین‌ها:

  • GET → برای دریافت صفحات
  • POST → برای ارسال اطلاعات
  • HEAD → درخواست هدر صفحات

اما متدهایی مثل TRACE، DELETE، TRACK معمولاً مورد سوءاستفاده قرار می‌گیرند و سایت را در معرض حملات قرار می‌دهند.

راه‌حل: محدود کردن متدهای HTTP

کد زیر را در فایل .htaccess اصلی سایت اضافه کنید:

<LimitExcept GET POST HEAD>
Require all denied
</LimitExcept>

توضیح ساده:

  • RewriteCond %{REQUEST_METHOD} → بررسی متد درخواست
  • ^(TRACE|DELETE|TRACK) → اگر متد یکی از اینها باشد
  • RewriteRule .* - [F,L] → دسترسی رد می‌شود (Forbidden)

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

مزیت امنیتی

بدون محدودیت متدهابا محدودیت متدها
سایت در معرض حملات غیرمعمول استحملات با متدهای غیرمجاز مسدود می‌شوند
هکرها می‌توانند نقاط ضعف سرور را بررسی کنندمسیرهای نفوذ محدود می‌شوند
آسیب‌پذیری بالا استامنیت کلی سرور افزایش می‌یابد

این یکی از تنظیمات پایه‌ای امنیت سرور است که اغلب نادیده گرفته می‌شود.

جلوگیری از SQL Injection و XSS با htaccess

هکرها از SQL Injection (تزریق کد مخرب به کوئری پایگاه داده) برای دسترسی به پایگاه داده و از XSS (Cross-Site Scripting) برای اجرای اسکریپت‌های مخرب در مرورگر کاربران استفاده می‌کنند. این دو روش از رایج‌ترین حملات وب هستند و می‌توانند سایت شما را به شدت آسیب‌پذیر کنند.

جلوگیری از SQL Injection

برای مسدود کردن درخواست‌هایی که شامل الگوهای رایج تزریق SQL هستند، این کد را در فایل .htaccess اصلی اضافه کنید:

RewriteCond %{QUERY_STRING} (\%27)|(\')|(\-\-)|(\%23)|(#) [NC]
RewriteRule .* - [F,L]

توضیح ساده:

  • %27 یا ' → آپوستروف یا نقل قول
  • -- → کامنت SQL
  • # → کامنت SQL
  • [F,L] → مسدود کردن درخواست

این کد جلوی اکثر تلاش‌های تزریق SQL ساده را می‌گیرد.

جلوگیری از XSS

برای جلوگیری از ارسال کد مخرب (اسکریپت) از طریق URL:

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC]
RewriteRule .* - [F,L]

توضیح ساده:

  • بررسی درخواست‌ها برای تگ <script>
  • اگر پیدا شد، درخواست رد می‌شود
  • جلوی اجرای اسکریپت‌های مخرب گرفته می‌شود

مزیت امنیتی

بدون محافظتبا محافظت htaccess
مهاجم می‌تواند داده‌ها را دستکاری کندتزریق SQL و XSS قبل از رسیدن به وردپرس متوقف می‌شود
سایت و کاربران آسیب‌پذیرندسایت و کاربران امن می‌مانند
احتمال هک پایگاه داده بالا استامنیت داده‌ها تضمین می‌شود

این مرحله یکی از کلیدی‌ترین اقدامات امنیتی برای جلوگیری از نفوذ و سرقت اطلاعات است.

مسدود کردن ربات‌ها و اسکنرهای مخرب با htaccess

هکرها و سرویس‌های خزنده مخرب (ربات‌ها) می‌توانند سایت شما را اسکن کنند، نسخه افزونه‌ها و قالب‌ها را شناسایی کنند، و مسیرهای آسیب‌پذیر را پیدا کنند.
برای مثال ربات‌هایی مثل AhrefsBot، SemrushBot، MJ12bot گاهی باعث مصرف بی‌جهت منابع سرور می‌شوند و حتی ممکن است اطلاعات سایت شما را جمع‌آوری کنند.

راه‌حل: مسدود کردن ربات‌ها با htaccess

کد زیر را در فایل .htaccess اصلی اضافه کنید:

SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
SetEnvIfNoCase User-Agent "SemrushBot" bad_bot
SetEnvIfNoCase User-Agent "MJ12bot" bad_bot

Require all granted
Require not env bad_bot

توضیح ساده:

  1. SetEnvIfNoCase User-Agent → بررسی نام ربات در هدر درخواست
  2. bad_bot → علامت‌گذاری این ربات به عنوان مخرب
  3. Deny from env=bad_bot → مسدود کردن تمام درخواست‌های این ربات

💡 نکته: می‌توانید لیست ربات‌ها را بر اساس نیاز سایت خود به روز کنید.

مزیت امنیتی و عملیاتی

بدون این کدبا این کد
ربات‌ها پهنای باند و منابع سایت را مصرف می‌کنندمصرف منابع کاهش می‌یابد
امکان شناسایی نقاط ضعف سایت توسط هکرها وجود داردربات‌های مخرب مسدود می‌شوند
سرعت سایت کاهش می‌یابدسایت سریع‌تر و امن‌تر می‌شود

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

محافظت نهایی با هدرهای امنیتی و HTTPS

علاوه بر محدودسازی دسترسی‌ها و جلوگیری از نفوذ، یک لایه مهم دیگر امنیت، هدرهای HTTP و استفاده کامل از HTTPS است. این کار جلوی بسیاری از حملات سطح مرورگر و جاسوسی اطلاعات می‌شود.

۱. فعال کردن HTTPS

اگر هنوز سایت شما از HTTPS استفاده نمی‌کند، حتماً آن را فعال کنید.
مزایای HTTPS:

  • تمامی داده‌های بین مرورگر کاربر و سرور رمزگذاری می‌شود
  • جلوی حملات Man-in-the-Middle گرفته می‌شود
  • اعتماد کاربران و رتبه سایت در گوگل افزایش می‌یابد

اجباری کردن HTTPS در وردپرس با htaccess

این کد را در فایل .htaccess روت اضافه کنید:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

✅ توضیح ساده: اگر کاربر با HTTP وارد شود، به HTTPS هدایت می‌شود و همیشه ارتباط امن خواهد بود.

۲. اضافه کردن هدرهای امنیتی

هدرهای امنیتی مرورگر می‌گویند چه محتوایی می‌تواند اجرا شود و چه چیزی مسدود شود. نمونه‌های مهم:

# جلوگیری از clickjacking
Header always append X-Frame-Options SAMEORIGIN

# جلوگیری از XSS
Header set X-XSS-Protection "1; mode=block"

# جلوگیری از MIME type sniffing
Header set X-Content-Type-Options "nosniff"

# محدود کردن دسترسی به مرورگر
Header set Referrer-Policy "no-referrer-when-downgrade"

# سیاست Content Security Policy پایه‌ای
Header set Content-Security-Policy "default-src 'self';"

توضیح ساده:

  • X-Frame-Options → جلوی باز شدن سایت داخل iframe سایت‌های دیگر
  • X-XSS-Protection → مرورگر تلاش می‌کند XSS را مسدود کند
  • X-Content-Type-Options → مرورگر فایل‌ها را با نوع صحیح اجرا می‌کند
  • Referrer-Policy → اطلاعات منبع (referrer) مرورگر محدود می‌شود
  • Content-Security-Policy → مشخص می‌کند چه منابعی مجاز به اجرا هستند

مزیت امنیتی این مرحله

بدون هدرهای امنیتیبا هدرهای امنیتی و HTTPS
سایت در معرض حملات XSS و clickjacking استمرورگر جلوی حملات را می‌گیرد
داده‌ها بدون رمزگذاری منتقل می‌شونداطلاعات بین کاربر و سرور امن است
اعتماد کاربران و سئو کم می‌شودامنیت، اعتماد و سئو سایت افزایش می‌یابد

این بخش، لایه تکمیلی امنیت سایت است و سایت شما را در برابر اکثر حملات شناخته‌شده وب مقاوم می‌کند.

جمع‌بندی نهایی: ارتقای امنیت وردپرس با htaccess

همانطور که در طول این راهنمای جامع دیدیم، فایل .htaccess ابزار بسیار قدرتمندی است که می‌تواند سطح امنیت سایت وردپرسی شما را چندین برابر افزایش دهد. با استفاده از htaccess، بسیاری از تهدیدها قبل از رسیدن به وردپرس متوقف می‌شوند و این یعنی:

  • مصرف منابع سرور بهینه می‌شود
  • سایت شما در برابر حملات رایج هکرها مقاوم می‌شود
  • کاربران و اطلاعات حساس سایت در امنیت کامل قرار می‌گیرند

مراحل کلیدی که پوشش دادیم:

  1. محدود کردن دسترسی به مدیریت وردپرس → فقط IPهای مجاز اجازه ورود دارند.
  2. گذاشتن رمز دوم روی پوشه wp-admin → دو لایه امنیتی قبل از ورود به وردپرس.
  3. جلوگیری از نمایش لیست فایل‌ها و پوشه‌ها → هکرها نمی‌توانند ساختار سایت را شناسایی کنند.
  4. محافظت از wp-config.php → مهم‌ترین فایل وردپرس کاملاً ایمن می‌شود.
  5. مسدود کردن XML-RPC → جلوی حملات Brute Force و DDoS گرفته می‌شود.
  6. جلوگیری از اجرای فایل‌های PHP در پوشه‌های غیرضروری → آپلود شل‌ها و کدهای مخرب بلاک می‌شوند.
  7. جلوگیری از Hotlinking تصاویر → پهنای باند سایت محفوظ می‌ماند و منابع هدر نمی‌رود.
  8. محدود کردن متدهای HTTP → متدهای غیرمعمول و خطرناک مسدود می‌شوند.
  9. جلوگیری از SQL Injection و XSS → تزریق کد و حملات پایگاه داده قبل از رسیدن به وردپرس متوقف می‌شوند.
  10. مسدود کردن ربات‌ها و اسکنرهای مخرب → مصرف منابع سرور کاهش می‌یابد و نقشه سایت در اختیار هکرها قرار نمی‌گیرد.
  11. هدرهای امنیتی و HTTPS → ارتباط کاربر و سرور رمزگذاری می‌شود و مرورگر از حملات XSS و clickjacking محافظت می‌کند.

نکات پایانی برای اجرای موفق

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

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

5/5 - (1 امتیاز)
Picture of پارسا مجیدی
پارسا مجیدی
زندگی من یه جورایی مثل یه اپلیکیشنه که همیشه تو پس‌زمینه در حال اجراست. از طراحی سایت و سئو گرفته تا خلق ایده‌هایی که درآمد غیرفعال بسازن، همه‌شون بخشی از این اپلیکیشنن. هر روز در حال آپدیت و یادگیریم تا دنیای آنلاین رو به یه جایی برسونم که دیده بشی، بفروشی و رشد کنی. داستان من و تکنولوژی؟ هنوز در حال "لود" شدنه...
اشتراک
اطلاع از
guest
0 نظرات
جدیدترین
قدیمی ترین بیشترین آرا
بازخورد درون خطی
مشاهده همه نظرات
عضو شوید و همه محصولات را رایگان دانلود کنید!!!
0
نظر خود را به اشتراک بگذاریدx