به خاطر مسائل امنیتی سرویس XML-RPC برای مدت زمان طولانی به طور پیش فرض غیر فعال بود . در وردپرس 3.5 این موضوع تغییر کرد. XML-RPC به طور پیش فرض فعال شد و امکان غیر فعال کردن آن از داشبورد وردپرس برداشته شد. در این مطلب سعی می کنیم نحوه غیر فعال کردن XML-RPC در وردپرس را با هم مرور کنیم. پس همراه وب ایده باشید.
XML-RPC چیست؟
XML-RPC یک سرویس فراخوانی دستورها از راه دور است که از XML برای رمزگذاری فراخوانی ها و از HTTP به عنوان مکانیسم انتقال استفاده می کند. به طور خلاصه این گزینه سیستمی است که به شما اجازه می دهد به کمک کلاینت های محبوب همچون Windows Live Writer بر روی وبلاگ وردپرسی خود مطلبی را پست کنید. اگر می خواهید به طور ریموت پستی را بر روی وبلاگ خود منتشر کنید و به آن دسترسی داشته باشید قطعا به چنین سرویسی نیاز خواهید داشت.
در گذشته مشکلات امنیتی زیادی درباره XML-RPC وجود داشت و به همین خاطر به طور پیش فرض غیر فعال شده بود. با اینحال در حال حاضر کدهای آن تغییر کرده و بهبود یافته است.
با افزایش روز افزون محبوبیت موبایل و دستگاه های موبایلی این تغییر خیلی سریع آغاز شد. با اینحال برخی از متخصصان بر این باورند که اگرچه XML-RPC در حال حاضر مشکل امنیتی بزرگی محسوب نمی شود اما باز هم می تواند سطوح بیشتری برای اسیب رساندن به سایت فراهم آورد.
اگر فکر می کنید برای بهبود امنیت سایت وردپرسی خود نیاز به غیر فعال کردن این قابلیت دارید مراحل زیر را طی کنید.
تنها کاری که شما باید انجام دهید کپی و پیست کردن کد زیر در یک افزونه مخصوص سایت است:
add_filter('xmlrpc_enabled', '__return_false');
همچنین می توانید افزونه ای به نام Disable XML-RPC را بر روی سایت نصب کنید. بعد از نصب کردن افزونه را فعال نمایید. این افزونه دقیقا همان کاری را انجام می دهد که کد بالا انجام می داد.
چگونه به کمک فایل .htaccess ، این قابلیت را غیر فعال کنیم؟
اگرچه راه حل هایی که در بخش های قبلی مقاله ذکر کردیم برای بیشتر افراد مناسب و کافی خواهد بود اما برخی از سایت هایی که دچار حمله شده اند ممکن است در انجام این فرایندها مشکل داشته باشند. در چنین شرایطی می توانید همه درخواست های xmlrpc.php را از طریق فایل .htaccess غیر فعال کنید. کافیست کد زیر را در فایل .htaccess خود کپی کنید:
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from 123.123.123.123 </Files>