
به اشتراک بگذارید
امنیت وردپرس | بلاگ وبداده
دفاع در برابر حملات DDoS به سایت وردپرسی؛ ۶ تکنیک کلیدی
- ماهیت تهدید: حمله از هزاران دستگاه آلوده همزمان میآید و هدفش «از دسترس خارجکردن» است، نه دزدیدن اطلاعات.
- خط مقدم دفاع: شبکه توزیع محتوا و فایروال اپلیکیشن (WAF) که ترافیک را در لبه فیلتر میکنند.
- لایه اپلیکیشن: محدودکردن نرخ درخواست، بستن xmlrpc.php و کنترل صفحه ورود.
- زیرساخت: پنهانماندن IP اصلی سرور، هاست پرظرفیت و بهروزرسانی مداوم.
- واقعیت صادقانه: دفاع کامل لایه شبکه در سطح سرور تنها ممکن نیست و به شبکه بالادست نیاز دارد.
در یک نگاه
دفاع در برابر حملات DDoS چیست و چرا اهمیت دارد؟
تشبیه کاربردی
یک نکته را همین اول روشن کنیم

حملات DDoS در چند لایه اتفاق میافتند؟
لایه شبکه (حملات حجمی)
لایه انتقال (حملات پروتکلی)
لایه اپلیکیشن (لایه ۷)
چرا تفکیک لایهها مهم است؟
۶ تکنیک کلیدی برای مقاومسازی سایت وردپرسی
پیش از شروع: یک بکاپ بگیرید
تکنیک اول: از شبکه توزیع محتوا و فایروال اپلیکیشن (WAF) استفاده کنید
رایگان یا پولی؟
تکنیک دوم: نرخ درخواستها را محدود کنید (Rate Limiting)
# محدودکردن نرخ درخواست به صفحه ورود در Nginx برای کاهش سیل ورود خودکار
# ۱) در بلاک http این zone را تعریف کنید:
limit_req_zone $binary_remote_addr zone=wplogin:10m rate=10r/m;
# ۲) در بلاک server سایت، مسیر ورود را محدود کنید:
location = /wp-login.php {
limit_req zone=wplogin burst=3 nodelay;
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
}Nginxمراقب کاربران واقعی باشید
تکنیک سوم: xmlrpc.php و pingback را ببندید
xmlrpc.php یک درگاه قدیمی وردپرس است که طبق تحلیل وردفنس میتواند همزمان بهعنوان «تقویتکننده» حمله جستجوی فراگیر و هم بهعنوان «بازتابدهنده» حمله DDoS سوءاستفاده شود. در حمله pingback، مهاجم با ارسال درخواستهای جعلی، هزاران سایت وردپرسی را وادار میکند همزمان به یک هدف واحد ترافیک بفرستند و عملاً آنها را به یک باتنت DDoS تبدیل میکند. اگر از اپ موبایل وردپرس یا نسخههای قدیمی Jetpack استفاده نمیکنید، بستن این فایل در سطح وبسرور یکی از سادهترین و مؤثرترین کارهاست. روی سرورهای اپاچی و لایتاسپید (رایج در هاستهای سیپنل)، این قطعه را در فایل .htaccess ریشه سایت قرار دهید:# بستن xmlrpc.php برای جلوگیری از سوءاستفاده pingback در حملات DDoS (Apache 2.4+)
# اگر از اپ موبایل وردپرس یا Jetpack قدیمی استفاده میکنید، این قطعه را اعمال نکنید
<Files "xmlrpc.php">
Require all denied
</Files>Apacheراه سادهتر بدون کد
تکنیک چهارم: IP اصلی سرور را پنهان نگه دارید
تکنیک پنجم: افزونه امنیتی و فایروال وردپرس را فعال کنید

تکنیک ششم: زیرساخت میزبانی قوی و بهروزرسانی مداوم
جدول مقایسه ۶ تکنیک دفاعی
| تکنیک | لایه هدف | سختی اجرا | میزان اثر |
|---|---|---|---|
| شبکه توزیع محتوا + WAF | شبکه و اپلیکیشن | آسان تا متوسط | بسیار بالا |
| محدودسازی نرخ درخواست | اپلیکیشن | متوسط (فنی) | بالا |
| بستن xmlrpc.php / pingback | اپلیکیشن | متوسط (فنی) | متوسط تا بالا |
| پنهانکردن IP اصلی | شبکه | متوسط | بالا (مکمل CDN) |
| افزونه امنیتی / فایروال | اپلیکیشن | آسان | متوسط تا بالا |
| میزبانی قوی + بهروزرسانی | زیرساخت | آسان | بالا (پایه کار) |
از کجا شروع کنم؟
نقش میزبانی وبداده در مقاومت برابر حملات
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین و مناسبترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در فعالسازی CDN، تنظیم .htaccess و بازگردانی بکاپ در شرایط بحرانی.
✅ کنترلپنل و مدیر فایل کامل برای اعمال آسان همین تنظیمات و گرفتن بکاپ فوری.
تجربه پشتیبانی وبداده
معایب و محدودیتهایی که باید بدانید
پرسشهای پرتکرار درباره دفاع در برابر DDoS
از کجا بفهمم سایتم زیر حمله DDoS است؟
نشانههای رایج عبارتاند از کندشدن ناگهانی یا از دسترس خارجشدن سایت بدون دلیل مشخص، افزایش شدید و غیرعادی مصرف CPU و پهنایباند در کنترلپنل، و حجم بالای درخواست از IPهای متعدد در لاگ سرور — بهویژه به فایلهایی مثل wp-login.php یا xmlrpc.php. البته گاهی افزایش ناگهانی بازدید واقعی هم شبیه حمله بهنظر میرسد؛ پس لاگها را با دقت بررسی کنید.
آیا یک سایت کوچک هم هدف حمله DDoS قرار میگیرد؟
بله. بسیاری از حملهها خودکار و بیهدفاند و هر سایت وردپرسی آسیبپذیری را که پیدا کنند هدف میگیرند. حتی اگر سایت شما هدف مستقیم نباشد، ممکن است از طریق xmlrpc.php بهعنوان بخشی از یک باتنت برای حمله به دیگران سوءاستفاده شود. پس اندازه سایت مهم نیست.
مهمترین کاری که همین حالا باید انجام دهم چیست؟
اگر فقط وقت یک کار را دارید، یک شبکه توزیع محتوا مثل کلادفلر را جلوی سایت فعال کنید. این کار بیشترین اثر را با کمترین زحمت دارد، چون ترافیک حمله را پیش از رسیدن به سرور شما فیلتر میکند. در قدم بعد، xmlrpc.php را در صورت عدم نیاز ببندید.
آیا افزونه امنیتی وردپرس بهتنهایی جلوی DDoS را میگیرد؟
نه بهطور کامل. افزونههای امنیتی برای حملههای لایه اپلیکیشن مفیدند، اما چون داخل وردپرس و PHP اجرا میشوند، در برابر حملههای حجیم لایه شبکه که پهنایباند را اشباع میکنند کاری از دستشان برنمیآید. برای آن لایه، به شبکه توزیع محتوا نیاز دارید.
بستن xmlrpc.php به سایتم آسیب نمیزند؟
برای بیشتر سایتهای امروزی خیر، چون ابزارهای مدرن عمدتاً از REST API استفاده میکنند. اما اگر از اپ موبایل وردپرس، نسخههای قدیمی Jetpack یا برخی سرویسهای انتشار خودکار استفاده میکنید، ممکن است به آن نیاز داشته باشید. در این حالت بهجای بستن کامل، آن را محدود و rate-limit کنید.
تفاوت DoS و DDoS در چیست؟
در حمله DoS ترافیک از یک منبع میآید و معمولاً سادهتر بلاک میشود. در حمله DDoS همان حمله از هزاران دستگاه پراکنده (باتنت) همزمان انجام میشود؛ همین توزیعشدهبودن، شناسایی و بلاک آن را بسیار سختتر میکند و به همین دلیل به دفاع چندلایه نیاز دارد.
آیا شبکه توزیع محتوای رایگان برای دفاع کافی است؟
برای سایتهای کوچک و حملههای رایج، پلن رایگان اغلب نقطه شروع خوبی است و محافظت پایه میدهد. اما در برابر حملههای بزرگ و هدفمند، معمولاً به پلنهای پولی با محافظت پیشرفته و همیشهروشن نیاز خواهید داشت. سطح محافظت را متناسب با اهمیت سایتتان انتخاب کنید.
بعد از تنظیمات، کاربران واقعی هم بلاک شدند؛ چه کنم؟
این معمولاً بهخاطر محدودسازی نرخِ بیشازحد سختگیرانه است. مقادیر را ملایمتر کنید (مثلاً سقف درخواست را بالاتر ببرید) و IPهای مورد اعتماد خودتان را به فهرست سفید اضافه کنید. اگر تغییری در .htaccess باعث مشکل شده، فایل را به نسخه بکاپ برگردانید.
چهقدر باید امنیت سایت را بررسی کنم؟
دفاع در برابر DDoS یک کار یکباره نیست. بهتر است هسته، قالب و افزونهها را مرتب بهروزرسانی کنید، گزارش ترافیک و لاگها را گاهی مرور کنید و از تنظیمات شبکه توزیع محتوا مطمئن شوید. یک بازبینی ماهانه کوتاه معمولاً کافی است.
جمعبندی و چکلیست دفاعی
چکلیست سریع دفاع در برابر DDoS
✅ یک شبکه توزیع محتوا و فایروال اپلیکیشن (مثل کلادفلر) جلوی سایت فعال کنید.
✅ نرخ درخواست به صفحه ورود را محدود کنید و مقادیر را ملایم شروع کنید.
✅ در صورت عدم نیاز، xmlrpc.php و pingback را ببندید.
✅ مطمئن شوید IP اصلی سرور پشت شبکه توزیع محتوا پنهان مانده است.
✅ یک افزونه امنیتی معتبر نصب و فایروال آن را فعال کنید.
✅ هسته، قالب و افزونهها را مرتب بهروزرسانی کنید و میزبانی پرظرفیت انتخاب کنید.



