XML-RPC مخفف Extensible Markup Language – Remote Procedure Call است.
که یک پروتکل ارتباطی قدیمی است که اجازه میده برنامهها از طریق اینترنت با هم ارتباط برقرار کرده و دستورات را اجرا کنند..
دسترسی هایی که این پروتکل میده:
- سایت ها، نرم افزارها و اپلیکیشن های خارجی با وردپرس ارتباط برقرار کنن.
XML-RPC تو وردپرس چه کاری انجام میده؟
وقتی XML-RPC فعال باشه، وردپرس از طریق فایل xmlrpc.php (داخل پوشه public_html) به درخواستهای خارجی پاسخ میده..
- انتشار پست از طریق اپلیکیشنهای موبایل وردپرس
- ارتباط با ابزارهای وبلاگنویسی دسکتاپ
- ارتباط با سرویسهای مثل Pingback و Trackback؛ یا پلاگین Jetpack
XML-RPC باید فعال باشه یا غیرفعال؟
XML-RPC میتونه مفید باشه، اما امنیتی ضعیفی داره و هدف اصلی هکرهاست.
دلایل غیرفعال کردن XML-RPC:
جلوگیری از حملات Brute Force (تست رمز عبور)
- هکرها میتونن از طریق
xmlrpc.phpصدها یا هزاران دفعه نام کاربری و رمز عبور رو تست کنن. - در حالی که در وردپرس، لاگین فقط چند بار امکانپذیره، اما XML-RPC اجازه میده این کار با سرعت بالا انجام بشه.
جلوگیری از حملات DDoS با استفاده از Pingback
- این کار میتونه باعث حمله DDoS توزیعشده بشه که سایت شما به عنوان یک “ربات” استفاده بشه!
استفاده بیش از حد منابع سرور (Resource Exhaustion)
- درخواستهای متعدد به
xmlrpc.phpمیتونه باعث افزایش بار سرور و کندی سایت بشه.
عدم نیاز امروزی
- امروزه بیشتر اپلیکیشنها از REST API وردپرس استفاده میکنن که امنتر و مدرنتره.
- پس اگر شما از اپلیکیشن قدیمی یا ابزارهایی که از XML-RPC استفاده میکنن استفاده نمیکنید، فعال بودنش ضرورتی نداره.
چطوری XML-RPC رو غیرفعال کنیم؟
غیرفعال کردن از طریق .htaccess
# غیرفعال کردن xmlrpc.php
<Files “xmlrpc.php”>
Order Allow,Deny
Deny from all
</Files>
- پیشنهاد میشه اگر سرور Apache دارید از این روش استفاده کنین.
غیرفعال کردن از طریق functions.php تم فرزند (child theme)
add_filter(‘xmlrpc_enabled’, ‘__return_false’);
- کد رو داخل فایل
functions.phpتم فرزند قرار بدین.
غیرفعال کردن از طریق پلاگین
پلاگین های Wordfence Security ،iThemes Security وAll In One WP Security این امکان رو فراهم کردن.
- فقط کافیه در تنظیمات امنیتی، گزینه “Disable XML-RPC” رو فعال کنین.
چه زمانی نباید XML-RPC رو غیرفعال کنین؟
- از اپلیکیشن وردپرس موبایل برای انتشار مقاله استفاده میکنید.
- از Jetpack استفاده میکنید (بعضی ویژگیها مثل آمار، اشتراک، امنیت نیاز به XML-RPC دارن).
پیشنهاد
REST API جایگزین بهتری نسبت به XML-RPC است.
وردپرس از نسخه ۴.۷ به بعد REST API رو به صورت پیشفرض اضافه کرد.
ویژگی های REST API
- امنیت بالاتر
- مدرن تر بودن نسبت به XML-RPC
- قابلیت احراز هویت بهتری داره (مثل JWT, Application Passwords)