چطور از حملات XML-RPC در وردپرس جلوگیری کنیم؟

🛡️ چطور از حملات XML-RPC در وردپرس جلوگیری کنیم؟

💻 XML-RPC چیست؟

XML-RPC یک پروتکل قدیمی است که وردپرس برای ارتباط از راه دور (Remote Access) از آن استفاده می‌کرد. این قابلیت به کاربران امکان می‌داد از طریق اپلیکیشن‌های موبایل یا سرویس‌های شخص ثالث به سایت وردپرسی متصل شوند.
🔗 مسیر آن معمولاً:
https://example.com/xmlrpc.php


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

در گذشته، هکرها از این فایل برای حملات مختلفی استفاده می‌کردند، مثل:
🔹 Brute Force (حدس رمز عبور با درخواست‌های متعدد)
🔹 DDoS (ارسال حجم زیادی از درخواست‌ها برای از کار انداختن سایت)
🔹 Exploits (سوءاستفاده از آسیب‌پذیری‌های احتمالی)


🧰 روش‌های جلوگیری از حملات XML-RPC در وردپرس

1️⃣ غیرفعال کردن کامل XML-RPC

اگر نیازی به XML-RPC ندارید (که معمولاً اکثر سایت‌ها نیازی ندارند)، بهترین کار غیرفعال کردن کامل آن است.

روش 1 – غیرفعال کردن با افزونه

✅ افزونه‌هایی مثل Disable XML-RPC یا Disable XML-RPC Pingback می‌توانند به‌راحتی این قابلیت را غیرفعال کنند.

روش 2 – غیرفعال کردن با کد

می‌توانید این کد را در functions.php قالب یا افزونه اختصاصی قرار دهید:

php
add_filter('xmlrpc_enabled', '__return_false');

🔒 با این روش، فایل xmlrpc.php عملاً از کار می‌افتد.


2️⃣ بستن دسترسی XML-RPC از طریق htaccess

اگر به پنل هاست یا سرور دسترسی دارید، می‌توانید با این کد در .htaccess دسترسی به فایل را ببندید:

apache
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

🔐 این روش جلوی همه درخواست‌های مستقیم به این فایل را می‌گیرد.


3️⃣ محدود کردن دسترسی به IPهای خاص

اگر فقط یک سرویس خاص (مثل Jetpack) به XML-RPC نیاز دارد، می‌توانید دسترسی را فقط به IPهای مجاز بدهید. مثلاً:

apache
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 192.168.1.100
</Files>

📌 این روش فقط برای سایت‌هایی کاربرد دارد که حتماً باید XML-RPC فعال باشد.


4️⃣ مانیتورینگ و شناسایی حملات

📊 با نصب افزونه‌های امنیتی مثل Wordfence یا Sucuri می‌توانید:
✔️ حملات Brute Force روی XML-RPC را شناسایی کنید.
✔️ درخواست‌های مشکوک را بلاک کنید.
✔️ هشدارهای امنیتی دریافت کنید.


5️⃣ غیرفعال کردن قابلیت Pingback

حتی اگر XML-RPC را نیاز دارید، می‌توانید Pingback (که یک نقطه ضعف مهم است) را جداگانه غیرفعال کنید:

php
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
return $methods;
});

🚨 این کد فقط Pingback را می‌بندد و بقیه قابلیت‌های XML-RPC فعال می‌ماند.


📊 مقایسه روش‌ها

روش امنیت کارایی نیاز به تخصص
غیرفعال‌سازی با افزونه بالا راحت کم
غیرفعال‌سازی با کد بالا متوسط متوسط
بستن از htaccess بسیار بالا متوسط بالا
محدود کردن IP متوسط متوسط بالا
مانیتورینگ با افزونه بالا راحت کم
غیرفعال‌سازی Pingback متوسط راحت کم

✅ جمع‌بندی و توصیه نهایی

اگر به قابلیت XML-RPC نیازی ندارید:
🔒 بهترین راه، غیرفعال کردن کامل آن با افزونه یا کد است.

اگر مجبورید XML-RPC فعال بماند:
🛡️ حتماً دسترسی را به IPهای مطمئن محدود کنید و Pingback را غیرفعال کنید.

همچنین نصب افزونه‌های امنیتی برای مانیتورینگ مداوم حملات توصیه می‌شود. 🔍


📚 منابع پیشنهادی

  • مستندات رسمی وردپرس
  • بلاگ امنیتی Sucuri
  • راهنمای Wordfence در مورد XML-RPC

بدون دیدگاه

دیدگاهتان را بنویسید

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