xml-rpc چیست؟ یک پروتکل ارتباطی در وردپرس که با استفاده از XML و HTTP، امکان مدیریت سایت از راه دور را فراهم میکند. این قابلیت برای اتصال اپلیکیشنها، ارسال پست و دریافت دادهها؛ طراحی شده، اما میتواند راه نفوذی برای هکرها باشد و امنیت سایت را تهدید کند. برای اینکه بدانید چطور و چگونه این قابلیت را غیرفعال کنید و همچنین اطلاعاتی مفید از عملکرد آن به دست بیاورید، با تم فور همراه باشید.

سرفصلهای این مقاله:
- 1 xml-rpc چیست و چه کاربردی دارد؟
- 2 XML-RPC مخفف چیست؟
- 3 چرا وردپرس فایل xmlrpc.php را ایجاد کرده است؟
- 4 چرا xmlrpc.php یک تهدید امنیتی در وردپرس است؟
- 5 چگونه قابلیت xml-rpc را غیرفعال کنیم؟
- 6 بستن دسترسی با htaccess. (برای Apache)
- 7 بستن دسترسی در Nginx
- 8 آیا xml-rpc هنوز در وردپرس استفاده میشود؟
- 9 اگر xml-rpc را غیرفعال کنم چه میشود؟
- 10 تفاوت REST API و xml-rpc چیست؟
- 11 یا باید xml-rpc را برای همیشه غیرفعال کنم؟
- 12 جمعبندی: xml-rpc چیست؟
xml-rpc چیست و چه کاربردی دارد؟
xml-rpc یک پروتکل قدیمی اما مهم در وردپرس است که با استفاده از XML برای قالببندی دادهها و HTTP برای انتقال، امکان برقراری ارتباط بین سایت وردپرسی و نرمافزارها یا سرویسهای خارجی را فراهم میکند. این قابلیت زمانی بسیار محبوب بود. چراکه به کاربران اجازه میداد بدون ورود مستقیم به پیشخوان، از راه دور سایت خود را مدیریت کنند.
کاربردهای xml-rpc در وردپرس:
- ارسال و انتشار پست از طریق اپلیکیشن موبایل یا نرمافزارهای دسکتاپ
- مدیریت و تأیید دیدگاهها از راه دور
- فعالسازی و استفاده از Pingback و Trackback بین سایتها
- ارتباط با سرویسهایی مثل Jetpack و وردپرس داتکام
- دریافت و ویرایش مطالب بدون ورود به پنل مدیریت
XML-RPC مخفف چیست؟
XML-RPC مخفف عبارت XML Remote Procedure Call است.
- XML زبان نشانهگذاری قابل توسعه (eXtensible Markup Language) برای قالببندی و ساختاردهی دادهها.
- RPC فراخوانی رویه از راه دور (Remote Procedure Call) که روشی برای اجرای یک تابع یا دستور روی یک سیستم دیگر از طریق شبکه است.
به زبان ساده، XML-RPC یعنی «فراخوانی توابع از راه دور با استفاده از XML برای تبادل داده». در وردپرس این مکانیزم با فایل xmlrpc.php پیادهسازی شده و امکان مدیریت سایت را از خارج از پیشخوان فراهم میکند.

چرا وردپرس فایل xmlrpc.php را ایجاد کرده است؟
وردپرس فایل xmlrpc.php را برای فراهم کردن امکان مدیریت و ارتباط از راه دور با سایت ایجاد کرده است. این فایل به عنوان یک «درگاه ارتباطی» عمل میکند و به اپلیکیشنها و سرویسهای خارجی اجازه میدهد بدون نیاز به ورود مستقیم به پیشخوان وردپرس، دادهها را ارسال یا دریافت کنند.
در گذشته، زمانی که اینترنت موبایل و اپلیکیشنهای وب هنوز پیشرفته نبودند، این فایل راهحل اصلی برای اتصال وردپرس به ابزارهایی مانند برنامه موبایل وردپرس، سرویسهای وبلاگنویسی دیگر و حتی پلتفرمهای مدیریت محتوا بود.
امروز اگرچه REST API جایگزین مدرنتری شده، اما xmlrpc.php همچنان برای برخی سرویسها (مثل Jetpack یا پینگبکها) مورد استفاده قرار میگیرد.

چرا xmlrpc.php یک تهدید امنیتی در وردپرس است؟
فایل xmlrpc.php با اینکه برای مدیریت از راه دور طراحی شده، اما به دلیل ماهیت باز و سطح دسترسی گسترده، میتواند هدف حملات هکرها قرار بگیرد. این فایل اجازه میدهد درخواستهای متعدد و پشتسرهم به سایت ارسال شود، بدون اینکه کاربر وارد پنل مدیریت شود. همین ویژگی باعث شده که در حملات Brute Force (تلاش مکرر برای حدس رمز عبور) و حملات DDoS (ارسال حجم بالای درخواست برای از کار انداختن سایت) مورد سوءاستفاده قرار گیرد.

علاوه بر این، امکان اجرای دستورات از راه دور از طریق xmlrpc.php باعث شده که در صورت وجود باگ یا ضعف امنیتی در وردپرس یا افزونهها، هکرها بتوانند کنترل کامل سایت را به دست بگیرند. به همین دلیل، اگر از این قابلیت استفاده نمیکنید، غیرفعالکردن آن یک اقدام مهم برای افزایش امنیت است.

چگونه قابلیت xml-rpc را غیرفعال کنیم؟
غیرفعال کردن قابلیت xml-rpc در وردپرس یک روش مؤثر برای جلوگیری از سوءاستفادههای امنیتی است، بهخصوص اگر از این قابلیت استفاده نمیکنید. این کار را میتوان به چند روش انجام داد:
- استفاده از افزونهها: نصب افزونههایی مانند: Persian Tools یا افزونه Disable XML-RPC که بهصورت خودکار این فایل را غیرفعال میکنند.
- ویرایش فایل php: افزودن کدی برای غیرفعال کردن پشتیبانی xml-rpc مستقیماً در قالب وردپرس.
- تنظیمات سرور یا htaccess.: بستن دسترسی به فایل php از طریق قوانین .htaccess یا پیکربندی Nginx/Apache.
بستن دسترسی با htaccess. (برای Apache)
// # غیرفعال کردن XML-RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>بستن دسترسی در Nginx
// # غیرفعال کردن XML-RPC
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}هر کدام از این روشها باید با توجه به نیاز سایت و سطح دسترسی شما به هاست انتخاب شوند. اگر سایت شما به سرویسهایی مثل Jetpack یا اپلیکیشن وردپرس وابسته است، غیرفعال کردن xml-rpc ممکن است باعث قطع ارتباط این سرویسها شود.
آیا xml-rpc هنوز در وردپرس استفاده میشود؟
بله، اما بیشتر سرویسها به REST API مهاجرت کردهاند. با این حال، سرویسهایی مثل Jetpack یا pingback هنوز از آن استفاده میکنند.
اگر xml-rpc را غیرفعال کنم چه میشود؟
ارتباط با برخی سرویسها و اپلیکیشنهای وردپرس قطع میشود، ولی امنیت سایت افزایش پیدا میکند.
تفاوت REST API و xml-rpc چیست؟
xml-rpc از XML برای تبادل داده استفاده میکند، در حالی که REST API از JSON بهره میبرد و امنتر و سریعتر است.
یا باید xml-rpc را برای همیشه غیرفعال کنم؟
اگر هیچ سرویس یا اپلیکیشن خارجی به سایت شما متصل نیست، بله، غیرفعالکردن آن پیشنهاد میشود.
جمعبندی: xml-rpc چیست؟
xml-rpc در وردپرس مثل یک پل ارتباطی قدیمی است که زمانی نقش مهمی در مدیریت از راه دور سایتها داشت. با استفاده از XML و HTTP، این قابلیت به اپلیکیشنها و سرویسهای خارجی اجازه میداد بدون ورود مستقیم به پیشخوان، با سایت تعامل کنند. اما امروز، با وجود REST API و پیشرفت ابزارهای وب، استفاده از xml-rpc کمتر شده و بیشتر به یک نقطه ضعف امنیتی تبدیل شده است.
اگر به این قابلیت نیاز ندارید، غیرفعالکردن آن میتواند مثل بستن یک درِ اضافه در خانه باشد، درِی که ممکن است روزی هکرها از آن وارد شوند. آگاهی از اینکه xml-rpc چیست و چطور کار میکند، به شما کمک میکند تصمیم بهتری برای امنیت و کارایی سایتتان بگیرید. موفق باشید.




