البوابة القديمة لا تزال مفتوحة. XML-RPC بروتوكول وصول بعيد قديم يسمح للأدوات الخارجية بالتفاعل مع موقعك. للأسف، هو أيضاً أحد أكثر نقاط الهجوم استغلالاً.
لماذا هذا الأمر مهم؟
XML-RPC (xmlrpc.php) يسمح بـ:
- تضخيم القوة الغاشمة — المهاجمون يمكنهم تجربة مئات كلمات المرور في طلب واحد باستخدام طريقة
system.multicall - هجمات DDoS عبر pingback — موقعك يمكن استخدامه كسلاح لمهاجمة مواقع أخرى
- سرقة بيانات الاعتماد — XML-RPC يرسل أسماء المستخدمين وكلمات المرور بنص عادي (قبل التشفير على مستوى النقل)
معظم مواقع ووردبريس الحديثة لا تحتاج XML-RPC لأن:
- REST API (المُقدم في ووردبريس 4.7) يستبدل وظائفه
- تطبيق ووردبريس للجوال الآن يعمل مع REST API
- Jetpack كان يتطلبه، لكن النسخ الحديثة تستخدم طرق اتصال بديلة
كيف تتحقق إذا كنت تحتاجه
قد تحتاج XML-RPC إذا كنت:
- تستخدم نسخة قديمة من تطبيق ووردبريس للجوال أو سطح المكتب
- تستخدم إضافات تتطلبه صراحةً (نادر بشكل متزايد)
- تستخدم أدوات نشر خارجية لم تُحدّث إلى REST API
إذا لا ينطبق أي من هذه، عطّله.
كيفية الحل
ممارسة آمنة: قبل إجراء أي تغييرات تقنية، تأكد من وجود نسخة احتياطية كاملة لموقعك (الملفات وقاعدة البيانات) عبر لوحة تحكم الاستضافة أو إضافة متخصصة مثل UpdraftPlus.
الطريقة 1: .htaccess (مُوصى بها لـ Apache)
أضف هذا إلى ملف .htaccess، قبل قواعد إعادة كتابة ووردبريس:
# Apache .htaccess
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>الطريقة 2: Nginx
أضف إلى كتلة الخادم:
location = /xmlrpc.php {
deny all;
return 403;
}الطريقة 3: mu-plugin
أنشئ ملفاً في wp-content/mu-plugins/disable-xmlrpc.php:
<?php
/**
* Plugin Name: Dravasite – Disable XML-RPC
* Description: يعطّل طرق WordPress XML-RPC لمنع تضخيم القوة الغاشمة
* وهجمات DDoS عبر pingback.
* Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// عطّل جميع طرق XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );ملاحظة: هذا يعطّل طرق XML-RPC لكن الملف لا يزال متاحاً. الطريقتان 1 و 2 أكثر شمولاً لأنهما تحجبان الوصول على مستوى الخادم.
جديد على mu-plugins؟ اقرأ دليلنا لإضافة مقتطفات الكود بأمان مع mu-plugins.
الطريقة 4: إضافة أمان
معظم إضافات الأمان (Wordfence, iThemes, Sucuri) لديها خيار لتعطيل XML-RPC في إعداداتها.
انتبه لهذه النقاط
- اختبر بعد التعطيل. إذا كنت تستخدم Jetpack، تطبيق ووردبريس للجوال، أو أي أداة نشر خارجية، اختبر أنها لا تزال تعمل. إذا تعطّل شيء، أعد تفعيل XML-RPC وابحث عن بديل REST API لتلك الأداة.
- بعض مزودي الاستضافة يحجبون XML-RPC على مستوى الخادم بالفعل. تحقق من استضافتك قبل إضافة قواعد زائدة.
- يمكنك التحقق من تعطيل XML-RPC بزيارة
yourdomain.com/xmlrpc.php— يجب أن تحصل على خطأ 403 Forbidden بدلاً من رسالة "XML-RPC server accepts POST requests only".