كيفية تعطيل XML-RPC في ووردبريس؟

نشرت: 2022-09-19

هل تبحث عن ملف xmlrpc.php وكيف يمكنك تعطيله في WordPress؟ تشرح هذه المقالة ما هو xmlrpc.php وكيف يمكنك تعطيله.

من الممكن التواصل مع WordPress من تطبيقات خارج بيئة WordPress عبر مواصفات XML-RPC من خلال توحيد طريقة الاتصال بين الأنظمة.

منذ نشأتها ، كانت هذه المواصفات ذات قيمة كبيرة لمجتمع WordPress. بدونها ، كان WordPress قد تم عزله عن بقية الإنترنت.

ومع ذلك ، فإن xmlrpc.php له بعض العيوب أيضًا. أصبحت WP REST API مكونًا حيويًا في WordPress منذ اكتشاف ثغرات ملف xmlrpc.php. هذا يعزز بشكل كبير كيفية تفاعل WordPress مع البرامج الأخرى.

الغرض من هذه المقالة هو شرح ما هو xmlrpc.php ، ولماذا يجب تعطيله ، وكيف يمكنك تعطيله.

نقترح عليك أيضًا مراجعة مقالتنا حول أفضل المكونات الإضافية للأمان في WordPress.

ما هو ملف xmlrpc.php؟

الهدف من هذا القسم هو الإجابة على السؤال ما هو XML-RPC PHP؟ يمكن استخدام مواصفات XML-RPC للتواصل بين WordPress والأنظمة الأخرى.

باستخدام HTTP كبروتوكول نقل و XML كبروتوكول تشفير ، يمكن لـ XML-RPC توحيد البروتوكولات المستخدمة في هذه الاتصالات.

تم تشعب WordPress في عام 2003 من برنامج التدوين b2 ، والذي استخدم XML-RPC كواجهة. يوجد ملف يسمى xmlrpc.php في الدليل الجذر للنظام ويحتوي على رمز هذه الميزة. لا يزال هذا الملف متاحًا على الرغم من أن XML-RPC قديم بشكل أساسي.

كان الإعداد الافتراضي في الإصدارات القديمة من WordPress هو تعطيل XML-RPC. منذ الإصدار 3.5 ، تم تمكينه افتراضيًا لدعم الاتصال بين تطبيق WordPress للجوال وتثبيت WordPress الخاص بك.

قبل الإصدار 3.5 من WordPress ، كان بإمكان تطبيق WordPress للجوّال نشر المحتوى فقط إذا تم تكوين موقعك باستخدام XML-RPC. كان هذا بسبب حقيقة أن التطبيق لم يكن يعمل بنظام WordPress ؛ بدلاً من ذلك ، تواصلت مع موقع WordPress الخاص بك باستخدام xmlrpc.php.

بالإضافة إلى ذلك ، يتم استخدام XML-RPC للتواصل بين WordPress وأنظمة التدوين الأخرى وبين WordPress وتطبيق WordPress للجوال.

يمكن استخدام XML-RPC لعمليات pingbacks و trackbacks. كما أنها كانت بمثابة الواجهة الخلفية لمكوِّن Jetpack الإضافي ، مما جعل من الممكن أن تصبح مواقع WordPress ذاتية الاستضافة أعضاءً في WordPress.com.

نظرًا لأن واجهة برمجة تطبيقات REST قد تم دمجها الآن في نواة WordPress ، لم نعد نستخدم ملف xmlrpc.php. بدلاً من استخدام هذا الملف ، يمكنك الآن التواصل مع تطبيق WordPress للجوال وعملاء سطح المكتب والمكوِّن الإضافي Jetpack وأنظمة وخدمات أخرى باستخدام REST API.

من الممكن أيضًا دمج REST API مع مجموعة واسعة من الأنظمة ، ومرونتها أكبر من تلك الموجودة في xmlrpc.php. منذ أن تم استبدال XML-RPC بواجهات برمجة تطبيقات REST ، يجب عليك تعطيل xmlrpc.php على موقع الويب الخاص بك لتجنب المشاكل.

لماذا يجب عليك تعطيل XML-RPC؟

يجب أن تدرك أن ملف xmlrpc.php قد يعرض ثغرة XML-RPC في موقع WordPress الخاص بك إلى المتسللين ، لذلك يجب عليك تعطيله.

لم يعد استخدام XML-RPC ضروريًا للاتصالات خارج WordPress. إذا كنت ترغب في الحفاظ على موقعك آمنًا قدر الإمكان ، فيجب عليك تعطيله.

لهذا السبب ، سيكون WordPress دائمًا متوافقًا مع الإصدارات السابقة. يجب عليك تحديث مكونات WordPress الإضافية والسمات المرتبطة بمواقع WordPress الإلكترونية باستمرار إذا كنت مسؤولاً عنها.

إذا تم تمكين XML-RPC على موقع الويب الخاص بك ، فيمكن للمتسلل استخدامه كأداة لشن هجوم DDoS على موقع الويب الخاص بك. يمكنهم استخدام الوحدة النمطية xmlrpc.php لإنشاء العديد من عمليات pingback على موقعك ، مما قد يؤدي إلى زيادة التحميل على الخادم والتسبب في تعطل موقع الويب.

علاوة على ذلك ، يرسل xmlrpc.php أيضًا معلومات المصادقة مع كل طلب ، لذلك قد يتمكن المتسللون من اعتراض هذه المعلومات واستخدامها لمحاولة الوصول إلى موقع الويب الخاص بك. يمكن أن يسمح هجوم القوة الغاشمة للمتسللين بتنفيذ تعليمات برمجية ضارة وحذف التعليمات البرمجية وحتى إتلاف قاعدة البيانات الخاصة بك.

كيفية التحقق من تمكين XML-RPC؟

الرجاء النقر فوق الارتباط التالي للوصول إلى موقع الويب: خدمة التحقق من صحة WordPress XML-RPC.

بمجرد إدخال اسم المجال الخاص بك ، انقر فوق الزر "فحص".

تحقق من تمكين xmlrpc على WordPress

إذا كان الاختبار ناجحًا ، فسيتم الآن تمكين XML-RPC ، والذي يجب إيقاف تشغيله على الفور.

قم بتعطيل XMLRPC باستخدام مكونات WordPress الإضافية

لأسباب مختلفة ، قد يرغب مالكو الموقع في تعطيل وظيفة XMLRPC. يمكنك استخدام العديد من المكونات الإضافية ، مثل Disable XML-RPC ، للقيام بذلك.

قم بتعطيل XMLRPC باستخدام المكون الإضافي Disable XML-RPC

نشرح كيفية استخدام المكون الإضافي Disable XML-RPC لتعطيل وظيفة XMLRPC. يرجى تسجيل الدخول إلى لوحة إدارة WordPress الخاصة بك.

1. انقر فوق الإضافات ثم إضافة جديد.

2. أدخل "Disable XML-RPC" في مربع البحث. قم بتثبيت المكون الإضافي Disable XML-RPC بعد ذلك.

قم بتثبيت مكون إضافي جديد في WordPress

3. قم بتنشيط المكون الإضافي ، وستكون جاهزًا للعمل. بعد ذلك ، يتم تعطيل XML-RPC.

قم بتثبيت البرنامج المساعد Disable CML-RPC

في هذا البرنامج المساعد ، يمكنك العثور على مدقق XML-RPC الذي يمكن استخدامه للتحقق مما إذا تم تعطيل XML-RPC. في حالة تعطيل XML-RPC ، ستظهر رسالة فشل. إذا لم يكن كذلك ، يمكنك تعطيله باستخدام هذا المكون الإضافي.

تكوين تنشيط XML-RPC و REST API مع البرنامج المساعد

يتيح لك المكون الإضافي REST XML-RPC Data Checker تكوين واجهة برمجة تطبيقات REST و xmlrpc.php على موقع الويب الخاص بك بطريقة أكثر دقة.

بعد تثبيت البرنامج المساعد وتنشيطه ، انقر فوق علامة التبويب XML-RPC بعد النقر فوق علامة التبويب REST XML-RPC Data Checker في الإعدادات.

من خلال المكون الإضافي ، يمكنك تحديد ميزات xmlrpc.php التي يتم تمكينها على موقعك بالضبط. من الممكن أيضًا تعطيله تمامًا. هناك أيضًا علامة تبويب في المكون الإضافي تتيح لك التحكم في REST API إذا اخترت القيام بذلك.

تعطيل XMLRPC بدون البرنامج المساعد

إذا كنت تفضل عدم إضافة مكون إضافي آخر إلى موقع الويب الخاص بك ، فيمكنك تعطيل xmlrpc.php باستخدام مرشح أو ملف htaccess الخاص بك. لنفكر في كلا الخيارين معًا.

قم بتعطيل xmlrpc.php عبر عامل التصفية

باستخدام مرشح xmlrpc_enabled ، من السهل جدًا تعطيل xmlrpc.php. يجب عليك إضافة هذه الوظيفة وتنشيطها على موقع الويب الخاص بك:

 add_filter( 'xmlrpc_enabled', '__return_false' );

يمكن إضافة الوظيفة إلى ملف وظائف السمة. يمكن أيضًا تحرير ملف .htaccess باستخدام إما cPanel أو FTP ، اعتمادًا على ما إذا كنت متصلاً بموفر خدمة استضافة باستخدام Apache.

ترجع الدالة __return_false في WordPress الشرط المنطقي false. يقوم عامل التصفية هذا بحظر العمليات التي تتطلب تسجيل دخول مستخدم فقط.

يجب إلغاء تسجيله من جميع الطرق لتعطيل جميع عمليات خادم XMLRPC. لتحقيق ذلك ، تحتاج إلى ربط مرشح xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

ينشئ ملف xmlrpc.php كائنًا من الفئة wp_xmlrpc_server عند تقديم طلب. داخل مجلد wp-include ، يوجد ملف فئة يحتوي على خاصية تسمى التوابع.

تتضمن خاصية التوابع مصفوفة من أسماء الوظائف التي يمكن الوصول إليها عبر طلبات XML-RPC.

يتم إرجاع الدالة برسالة خطأ عندما لا يتم تضمينها في هذه المصفوفة. وبالتالي ، إذا قمت بإفراغ المصفوفة ، فأنت متأكد من أنك لن تتمكن من استخدام أي وظائف.

تعطيل XML-RPC باستخدام htaccess

يتضمن تعطيل XML-RPC باستخدام htaccess بضع خطوات بسيطة. هذه هي الطريقة التي يمكنك من خلالها تعطيل xmlrpc.php .htaccess:

  • يمكنك استخدام FTP أو File Manager للانتقال إلى الدليل الجذر لموقعك على الويب.
  • يجب عليك فتح ملف htaccess.
  • ستحتاج إلى إضافة الكود التالي إلى ملف htaccess الخاص بك:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

يمكن استبدال xxx.xxx.xxx.xxx بعنوان IP الذي ترغب في منحه حق الوصول إلى xmlrpc.php. إذا كنت ترغب في إزالة xmlrpc.php من WordPress بالكامل ، يمكنك إزالة هذا السطر.

تعطيل XMLRPC في Apache / Nginx

يمكن أيضًا أن يكون تعطيل XMLRPC في Apache / Nginx عملية بسيطة. يجب إضافة الكود التالي إلى ملف تكوين Apache لتعطيل xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

باستخدام التعليمات البرمجية التالية في ملف تكوين Nginx ، يمكنك تعطيل xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

كيف يتم البحث عن هجمات XML-RPC والعثور عليها في توزيعات Linux المختلفة؟

إذا كنت تبحث عن هجمات XML-RPC في توزيعات Linux مختلفة ، فيمكنك استخدام الأوامر التالية لإيقاف هجمات xmlrpc.php:

خادم CentOS مع تثبيت Apache:
 # grep xmlrpc /var/logs/httpd/access.log
مع Apache على Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
بالنسبة للخوادم التي تستند إلى Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
للخوادم المستندة إلى cPanel:
 # grep xmlrpc /home/username/logs/access.log

ستتلقى الإخراج التالي إذا تم تنفيذ الأوامر السابقة على موقع WordPress يتعرض للهجوم:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

متى يتم الاحتفاظ بملف XML-RPC.php ممكّنًا

هناك بعض المواقف التي قد يكون من المفيد فيها تمكين XML-RPC ، وهذه بعض منها:

  • إذا كانت واجهة برمجة تطبيقات REST غير متاحة عندما يكون لديك موقع ويب قديم لا يمكن تحديثه إلى الإصدار 4.4 أو أعلى لأي سبب من الأسباب.
  • لا يمكن لأي برنامج الوصول إلى REST API على موقع الويب الذي تستخدمه للتواصل معه.
  • من أجل دمج بعض تطبيقات الطرف الثالث التي تتطلب XML-RPC للعمل.

وتجدر الإشارة ، مع ذلك ، إلى أنه لا توجد أسباب كافية للاستمرار في استخدام XML-RPC و xmlrpc.php.

السبب الوحيد وراء جعل WordPress متوافقًا مع الإصدارات السابقة ؛ نتيجة لذلك ، لن ترغب في استخدامه إلا إذا كنت تستخدم إصدارًا قديمًا من WordPress.

بالنسبة لأولئك الذين يرغبون في الحفاظ على موقعهم محدثًا ودعم أحدث إصدار من البرنامج ، يجب تعطيل xmlrpc.php.

اختبار وظائف XML-RPC في WordPress

بالإضافة إلى ذلك ، يمكنك استخدام خيار اختبار WordPress للتحقق من أن موقع الويب الخاص بك قد تم تعطيله بنجاح من تلقي طلبات XML-RPC.

لهذا الغرض ، يمكنك تنزيل تطبيق WordPress Mobile على هاتفك. تتوفر إصدارات Android و iPhone من هذا التطبيق. بعد تثبيت التطبيق على جهازك ، انقر فوق أدخل عنوان موقعك الحالي لبدء استخدامه.

تكون قد انتهيت إذا رأيت رسالة الخطأ التي تفيد بأن خدمات XML-RPC معطلة على هذا الموقع. هذه رسالة ممنوعة في WordPress xmlrpc.php 403.

استنتاج

تم تطوير مواصفات XML-RPC قبل إنشاء WordPress للسماح بالتواصل مع التطبيقات والأنظمة الخارجية. توجد العديد من الثغرات الأمنية في هذه المواصفات ، مما قد يجعل موقع الويب الخاص بك عرضة للهجمات.

تسمح واجهة برمجة تطبيقات REST لموقعك بالاتصال بالبرامج الأخرى ، مما يجعل من الممكن تعطيل xmlrpc.php دون قلق. إذا كنت ترغب في زيادة أمان موقع الويب الخاص بك ، فاتبع الخطوات المذكورة للقيام بذلك.