WordPress در XMLRPC نحوه غیر فعال کردن



نحوه غیر فعال کردن XMLRPC در WordPress




XML-RPC که یک پروتکل فراخوانی از راه دور است برای مدتی طولانی به دلایل امنیتی و به طور پیش فرض غیر فعال شده بود اما اخیرا با انتشار WordPress 3.5 مجددا و به طور پیشفرض فعال شده است ضمن اینکه متاسفانه امکان غیرفعالسازی آن از داشبورد وردپرس حذف شد!

این مقاله، نحوه غیرفعال کردن XML-RPC در وردپرس و دلیل ارائه مجدد آن توسط WordPress را بیان میکند.

XML-RPC چیست؟
XML-RPC یک پروتکل فراخوانی دستور از راه دور است که اطلاعات را از طریق XML با استفاده از پروتکل http منتقل می کند. به بیانی دیگر XML-RPC سیستمی است که امکان ایجاد پست در وبلاگ وردپرس با استفاده از نرم افزار های وبلاگ نویسی مانند Windows Live Writer را علاوه بر استفاده از تلفن همراه و دستگاه های مشابه جهت دسترسی به وبلاگ و انتشار مطالب از راه دور را فراهم می کند.

درگذشته نگرانی های امنیتی زیادی در ارتباط با XML-RPC وجود داشت که منجر به حذف این قابلیت به طور پیشفرض شد اما امروزه با توجه به استفاده روز افزون از تلفن های هوشمند، مجددا فعال گردیده است.
متاسفانه اخیرا گزارش های نا امید کننده ای در خصوص سیستم مدیریت محتوا Wordpress دریافت شده است که یکی از آن ها ایجاد حملات DDOS به سمت فایل xmlrpc.php می باشد.
 
روش های غیر فعال کردن XML-RPC:

1- حذف فایل xmlrpc.php 
با حذف این فایل تمامی مراجعات با شکست مواجه می شود اما اجرای این روش توصیه نمی شود!

2- غیرفعال کردن XML-RPC و Pingback با استفاده از functions.php 
به مسیر بارگذاری قالب وبسایت مراجعه نموده و کد زیر را به انتهای فایل functions.php اضافه کنید.
(فایل مذکور معمولا در مسیر زیر wp-content/themes/yourtheme/functions.php از هاست شما بارگذاری شده است.)
function remove_x_pingback($headers) {
unset($headers['X-Pingback']);
return $headers;
}
add_filter('wp_headers', 'remove_x_pingback');
add_filter('xmlrpc_enabled', '__return_false');
 3- نصب افزونه های Disable XML-RPC و XML-RPC Pinkback
با استفاده از این افزونه ها نیز می توانید بدون نیاز به وارد کردن کد های بالا XML-RPC را غیرفعال کنید.

دریافت افزونه Disable XML-RPC
دریافت XML-RPC Pinkback

4- محدود کردن دسترسی به XML-RPC در فایل htaccess.
فایل htaccess. موجود در public_html یا مسیر اصلی هاست را باز نموده و کد زیر را در ابتدای آن قرار دهید.

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
با این روش که یکی از بهترین موارد است دسترسی به فایل xmlrpc.php که مورد حمله قرار گرفته قطع خواهد شد.

5- محدود کردن دسترسی در Apache
ممکن است شما از یک سرور مجازی یا اختصاصی که حاوی تعداد زیادی اکانت WordPress می باشد، استفاده می فرمایید در این صورت انجام روش قبل بسیار زمانبر و طولانی خواهد بود.
در این شرایط می توانید با استفاده از دسترسی root و SSH کد زیر را در ابتدای فایل کانفیگ Apache قرار دهید.
(در سرور های cPanel این فایل در مسیر usr/local/apache/conf/httpd.conf/ می باشد.)
<FilesMatch "^(xmlrpc\.php|wp-trackback\.php)">
Order Deny,Allow
Deny from all
</FilesMatch>
با استفاده از این روش که بسیار توصیه شده است تمامی حملات همانند روش قبل اینبار نه تنها برای یک اکانت بلکه برای تمامی اکانت هاخنثی می شوند.

6- محدود کردن دسترسی در nginx

چنانچه از وب سرور nginx در سرور شما استفاده می شود می توانید با استفاده از دسترسی root و SSH کد زیر را در فایل کانفیگ nginxقرار دهید.
server {
location = /xmlrpc.php {
deny all;
}
}
با استفاده از این روش نیز تمامی حملات همانند روش قبل خنثی می شوند.


نکته: 
البته هبچ گاه از بروز رسانی سیستم مدیریت محتوای خود غافل نشوید!

 

آیا این پاسخ به شما کمک کرد؟

 پرینت این مقاله

در همین زمینه

Simple Security Firewall معرفی افزونه امنیتی

معرفی افزونه امنیتی Simple Security Firewall در این مقاله قصد داریم افزونه امنیتی Simple...

Trackback - WordPress مقابله با نظرات اسپم در

مقابله با نظرات اسپم در Trackback - WordPress آیا شما نیز با بازتاب ها یا نظرات اسپم...

WordPress راهنمای جامع افزایش سطح امنیت و ایمن سازی

راهنمای جامع افزایش سطح امنیت و ایمن سازی WordPress همانطور که از WordPress به عنوان محبوب...

چیست و چگونه آن را ایجاد نماییم؟ XML Sitemap

XML Sitemap چیست و چگونه آن را ایجاد نماییم؟ Sitemap فهرستی از صفحه‌های موجود در وبسایت...

All In One WP Security & Firewall معرفی افزونه امنیتی

معرفی افزونه امنیتی All In One WP Security & Firewall در این مقاله به معرفی افزونه...