امنیت وردپرس | بلاگ وب‌داده

دفاع در برابر حملات DDoS به سایت وردپرسی؛ ۶ تکنیک کلیدی

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

در یک نگاه

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

دفاع در برابر حملات DDoS چیست و چرا اهمیت دارد؟

حمله «انکار سرویس توزیع‌شده» (Distributed Denial of Service یا همان DDoS) تلاشی هماهنگ است که در آن هزاران دستگاه آلوده — که در مجموع یک «بات‌نت» را می‌سازند — هم‌زمان به یک سایت درخواست می‌فرستند. هدف، سرقت اطلاعات نیست؛ هدف این است که سرور یا پهنای‌باند شما زیر بار این سیل درخواست پر شود و کاربران واقعی نتوانند وارد سایت شوند. طبق تعریف کلادفلر، تفاوت اصلی DoS با DDoS در همین «توزیع‌شده‌بودن» است: در DoS حمله از یک منبع می‌آید، اما در DDoS از هزاران منبع پراکنده.
چرا این موضوع برای یک سایت وردپرسی مهم است؟ چون وردپرس محبوب‌ترین سامانه مدیریت محتوای دنیاست و همین محبوبیت آن را به هدفی پرتکرار تبدیل کرده. حتی چند دقیقه از دسترس خارج‌شدن می‌تواند به فروش، اعتبار و رتبه سئوی شما آسیب بزند. مهم‌تر اینکه بخشی از دفاع در دست خود شماست و بخشی به شبکه و میزبان بستگی دارد؛ شناخت این مرز، به شما کمک می‌کند انرژی‌تان را جای درست بگذارید.

تشبیه کاربردی

حمله DDoS مثل این است که هزاران نفر هم‌زمان و بی‌دلیل جلوی درِ یک مغازه صف بکشند تا مشتری واقعی نتواند وارد شود. شما نمی‌توانید جلوی همه را در ورودی مغازه بگیرید؛ باید کنترل جمعیت را به یک نیروی بیرونی بزرگ‌تر (شبکه توزیع محتوا) بسپارید که ازدحام را در خیابان مدیریت کند و فقط مشتری واقعی را به در برساند.

یک نکته را همین اول روشن کنیم

دفاع در برابر حمله‌های حجیم لایه شبکه (که پهنای‌باند را اشباع می‌کنند) تقریباً هیچ‌وقت در سطح سرور تنها ممکن نیست؛ این ترافیک باید در شبکه‌ای بالادست و پرظرفیت جذب شود. بنابراین بخش زیادی از این مقاله روی لایه‌ای تمرکز دارد که واقعاً کنترلش دست شماست: لایه اپلیکیشن و پیکربندی وردپرس.
نمای مفهومی دفاع در برابر حملات DDoS و فیلترشدن ترافیک جعلی پیش از رسیدن به سرور

حملات DDoS در چند لایه اتفاق می‌افتند؟

برای انتخاب دفاع درست، اول باید بدانید حمله در کدام لایه رخ می‌دهد. کلادفلر حملات را در سه دسته اصلی توضیح می‌دهد؛ شناخت این سه، دلیل هر تکنیک را روشن می‌کند:

لایه شبکه (حملات حجمی)

حمله‌های سیل‌آسا در سطح IP مثل بازتاب و تقویت (Amplification) که هدفشان اشباع پهنای‌باند شماست. با واحد گیگابیت یا ترابیت بر ثانیه سنجیده می‌شوند و فقط در شبکه بالادست قابل‌جذب‌اند.

لایه انتقال (حملات پروتکلی)

حمله‌هایی مثل SYN Flood که جدول اتصال و پشته TCP سرور را پر می‌کنند و منابع تجهیزات شبکه را می‌بلعند. با واحد «بسته بر ثانیه» (pps) سنجیده می‌شوند.

لایه اپلیکیشن (لایه ۷)

سیل درخواست‌های HTTP که شبیه ترافیک واقعی‌اند؛ مثل حمله به wp-login.php یا xmlrpc.php. هدفشان مصرف CPU و دیتابیس است. این لایه بیشترین ارتباط را با وردپرس دارد و بخشی از دفاعش دست شماست.

چرا تفکیک لایه‌ها مهم است؟

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

۶ تکنیک کلیدی برای مقاوم‌سازی سایت وردپرسی

پیش از شروع: یک بکاپ بگیرید

قبل از هر تغییری در فایل‌های سرور یا نصب افزونه امنیتی، از سایت و دیتابیس بکاپ کامل بگیرید تا اگر چیزی طبق انتظار پیش نرفت، سریع به عقب برگردید. برای این کار می‌توانید از بکاپ رایگان و اسنپ‌شات فوری در هاست سی‌پنل کمک بگیرید.

تکنیک اول: از شبکه توزیع محتوا و فایروال اپلیکیشن (WAF) استفاده کنید

مؤثرترین خط دفاع، قراردادن یک شبکه توزیع محتوا (CDN) همراه با فایروال اپلیکیشن (WAF) جلوی سایت است؛ مانند سرویس‌هایی نظیر کلادفلر. طبق مستندات رسمی کلادفلر، فایروال اپلیکیشن جلوی سایت می‌نشیند و ترافیک غیرمجاز را فیلتر و بلاک می‌کند و می‌تواند از تأثیر حمله‌های DoS و DDoS بر سرویس‌دهی جلوگیری کند. این شبکه‌ها ترافیک حمله را در نقاط حضور جهانی خود جذب می‌کنند، پیش از آنکه به سرور اصلی شما برسد. کلادفلر توصیه می‌کند مجموعه‌قوانین مدیریت‌شده DDoS را روی حساسیت بالا (پیش‌فرض) نگه دارید و مجموعه‌قوانین OWASP را نیز فعال کنید.

رایگان یا پولی؟

بیشتر شبکه‌های توزیع محتوا یک پلن رایگان دارند که محافظت پایه در برابر حملات رایج می‌دهد. اما محافظت پیشرفته و همیشه‌روشن در برابر حمله‌های بزرگ، معمولاً در پلن‌های پولی ارائه می‌شود. برای سایت‌های کوچک، پلن رایگان اغلب نقطه شروع خوبی است.

تکنیک دوم: نرخ درخواست‌ها را محدود کنید (Rate Limiting)

محدودکردن نرخ درخواست یعنی سقفی برای تعداد درخواست‌های هر IP در بازه زمانی تعیین کنید؛ مثلاً کلادفلر پیشنهاد می‌کند تلاش‌های ورود را به چیزی حدود ۵ درخواست در دقیقه به‌ازای هر IP محدود کنید تا حمله‌های خودکار حدس رمز متوقف شوند. این کار را می‌توانید در سطح شبکه توزیع محتوا یا مستقیماً روی وب‌سرور انجام دهید. اگر سرور شما از Nginx استفاده می‌کند، نمونه‌ای از محدودسازی نرخ برای صفحه ورود چنین است:
# محدودکردن نرخ درخواست به صفحه ورود در 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;
}

مراقب کاربران واقعی باشید

محدودسازی نرخ اگر بیش‌ازحد سخت‌گیرانه باشد، ممکن است کاربران واقعی را هم بلاک کند (False Positive). با مقادیر ملایم شروع کنید و رفتار سایت را زیر نظر بگیرید؛ سپس در صورت نیاز سخت‌گیرانه‌ترش کنید.

تکنیک سوم: 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>

راه ساده‌تر بدون کد

اگر با ویرایش فایل راحت نیستید، بیشتر افزونه‌های امنیتی معتبر گزینه‌ای برای غیرفعال‌کردن XML-RPC دارند. برای مثال در وردفنس این گزینه از مسیر Wordfence > All Options > Brute Force Protection در دسترس است و فایروال آن نیز تلاش‌های احراز هویت XML-RPC را به‌صورت خودکار محدود می‌کند.

تکنیک چهارم: IP اصلی سرور را پنهان نگه دارید

وقتی از شبکه توزیع محتوا استفاده می‌کنید، تمام ترافیک باید از مسیر آن شبکه عبور کند. اما اگر مهاجم IP واقعی سرور شما را پیدا کند، می‌تواند شبکه توزیع محتوا را دور بزند و مستقیم به سرور حمله کند. مستندات رسمی کلادفلر تأکید می‌کند که سرور اصلی (Origin) نباید مستقیم روی اینترنت در دسترس باشد؛ بهتر است دسترسی به آن فقط از رنج IP‌های شبکه توزیع محتوا مجاز شود. همچنین مراقب باشید رکوردهای قدیمی DNS، ایمیل‌های خروجی یا زیردامنه‌های فراموش‌شده، IP واقعی شما را لو ندهند.

تکنیک پنجم: افزونه امنیتی و فایروال وردپرس را فعال کنید

افزونه‌های امنیتی معتبر مثل وردفنس یا سوکوری یک لایه فایروال اپلیکیشن در سطح خود وردپرس اضافه می‌کنند و می‌توانند الگوهای مشکوک، نرخ درخواست بالا و تلاش‌های ورود خودکار را شناسایی و محدود کنند. این افزونه‌ها همچنین اسکن بدافزار و پایش تغییرات فایل را ارائه می‌دهند. صادقانه بگوییم: چون این افزونه‌ها داخل PHP اجرا می‌شوند، زیر حمله حجیم لایه شبکه خودشان منابع سرور را مصرف می‌کنند و کافی نیستند؛ پس آن‌ها را مکمل شبکه توزیع محتوا ببینید، نه جایگزین آن.
استفاده از فایروال و افزونه امنیتی به‌عنوان بخشی از دفاع در برابر حملات DDoS

تکنیک ششم: زیرساخت میزبانی قوی و به‌روزرسانی مداوم

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

جدول مقایسه ۶ تکنیک دفاعی

این جدول لایه هدف، سختی اجرا و میزان اثر هر تکنیک را کنار هم می‌گذارد تا بدانید از کجا شروع کنید:
تکنیکلایه هدفسختی اجرامیزان اثر
شبکه توزیع محتوا + WAFشبکه و اپلیکیشنآسان تا متوسطبسیار بالا
محدودسازی نرخ درخواستاپلیکیشنمتوسط (فنی)بالا
بستن xmlrpc.php / pingbackاپلیکیشنمتوسط (فنی)متوسط تا بالا
پنهان‌کردن IP اصلیشبکهمتوسطبالا (مکمل CDN)
افزونه امنیتی / فایروالاپلیکیشنآسانمتوسط تا بالا
میزبانی قوی + به‌روزرسانیزیرساختآسانبالا (پایه کار)

از کجا شروع کنم؟

اگر تازه‌کارید، از سه مورد کم‌دردسر شروع کنید: یک شبکه توزیع محتوا با پلن رایگان فعال کنید، افزونه امنیتی معتبر نصب کنید و xmlrpc.php را در صورت عدم نیاز ببندید. این سه، بیشترین اثر را با کمترین ریسک دارند. تکنیک‌های فنی‌تر مثل محدودسازی نرخ در Nginx را وقتی سراغشان بروید که به سرور دسترسی مستقیم و کمی آشنایی فنی دارید.

نقش میزبانی وب‌داده در مقاومت برابر حملات

همان‌طور که دیدیم، بخش مهمی از دفاع پیش از هر افزونه‌ای به زیرساخت شبکه و میزبانی برمی‌گردد: پهنای‌باند و ظرفیتی که بتواند بخشی از فشار را تحمل کند، امکان فعال‌سازی آسان شبکه توزیع محتوا، و پشتیبانی که در لحظه بحران کنارتان باشد. ما در وب‌داده تلاش کرده‌ایم این پایه را محکم بسازیم:
✅ زیرساخت سرورهای نسل جدید HPE (Gen11 و Gen10) برای پایداری و ظرفیت بالا.
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیک‌ترین و مناسب‌ترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در فعال‌سازی CDN، تنظیم .htaccess و بازگردانی بکاپ در شرایط بحرانی.
✅ کنترل‌پنل و مدیر فایل کامل برای اعمال آسان همین تنظیمات و گرفتن بکاپ فوری.

تجربه پشتیبانی وب‌داده

در تیم پشتیبانی وب‌داده بارها دیده‌ایم سایتی که ناگهان کند یا از دسترس خارج شده، در واقع زیر سیل درخواست به xmlrpc.php یا wp-login.php بوده است. راه‌حل عملی ما معمولاً ترکیبی است: بستن یا محدودکردن آن درگاه در سطح وب‌سرور، فعال‌کردن شبکه توزیع محتوا جلوی سایت، و اطمینان از به‌روزبودن هسته و افزونه‌ها. همین چند اقدام ساده اغلب فشار را به‌سرعت کم می‌کند.
اگر به‌دنبال بستری مطمئن برای وردپرس هستید، می‌توانید سرور مجازی ایران وب‌داده را ببینید. برای نگاه گسترده‌تر به امنیت زیرساخت هم مطلب روش‌های امن‌سازی سرور کمک‌کننده است؛ و اگر تازه می‌خواهید وردپرس را راه بیندازید، آموزش نصب وردپرس روی سی‌پنل را از دست ندهید.

معایب و محدودیت‌هایی که باید بدانید

صادقانه بگوییم، این تکنیک‌ها محدودیت‌هایی دارند. نخست، هیچ‌کدام «ایمنی مطلق» نمی‌آورند؛ حمله‌های خیلی بزرگ لایه شبکه ممکن است حتی از پس محافظت پایه هم عبور کنند و به پلن‌های تخصصی و پولی نیاز داشته باشند. دوم، محدودسازی نرخ بیش‌ازحد سخت‌گیرانه می‌تواند کاربران واقعی را بلاک کند. سوم، بستن xmlrpc ممکن است برخی اپ‌های موبایل یا افزونه‌های قدیمی را بشکند، پس اول از عدم‌نیاز مطمئن شوید. چهارم، افزونه‌های امنیتی سنگین خودشان زیر حمله حجیم منابع مصرف می‌کنند و کافی نیستند. جمع‌بندی: چند لایه درست را با هم به کار ببرید و دفاع را یک فرایند مداوم ببینید، نه یک کار یک‌باره.

پرسش‌های پرتکرار درباره دفاع در برابر DDoS

جمع‌بندی و چک‌لیست دفاعی

دیدیم که با ۶ تکنیک کلیدی می‌توان سایت وردپرسی را در برابر حمله‌های DDoS مقاوم‌تر کرد: استفاده از شبکه توزیع محتوا و فایروال اپلیکیشن، محدودسازی نرخ درخواست، بستن xmlrpc.php و pingback، پنهان‌نگه‌داشتن IP اصلی، فعال‌کردن افزونه امنیتی، و تکیه بر میزبانی قوی و به‌روز. مهم‌ترین پیام مقاله را فراموش نکنید: قدرت در ترکیب این لایه‌هاست، نه در یک ابزار تنها؛ و امنیت یک فرایند مداوم است، نه یک کار یک‌باره.

چک‌لیست سریع دفاع در برابر DDoS

✅ اول از همه بکاپ کامل بگیرید.
✅ یک شبکه توزیع محتوا و فایروال اپلیکیشن (مثل کلادفلر) جلوی سایت فعال کنید.
✅ نرخ درخواست به صفحه ورود را محدود کنید و مقادیر را ملایم شروع کنید.
✅ در صورت عدم نیاز، xmlrpc.php و pingback را ببندید.
✅ مطمئن شوید IP اصلی سرور پشت شبکه توزیع محتوا پنهان مانده است.
✅ یک افزونه امنیتی معتبر نصب و فایروال آن را فعال کنید.
✅ هسته، قالب و افزونه‌ها را مرتب به‌روزرسانی کنید و میزبانی پرظرفیت انتخاب کنید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
منابع: مستندات و راهنمای رسمی How to improve WordPress security و Proactive DDoS defense در Cloudflare؛ و تحلیل Should You Disable XML-RPC on WordPress در Wordfence.
وب داده
وب داده

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

مقاله‌ها: 45
پاسخی بگذارید

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