نحوه غیرفعال کردن XML-RPC در وردپرس (۳ روش امن)

غیرفعال کردن XML-RPC در وردپرس یکی از نکات امنیتی سایت است. XML-RPC یکی از API های اصلی وردپرس است که به کاربران اجازه می دهد تا با استفاده از برنامه هاف ابزارها و یا سرویس های شخص ثالث (Third-party) به وبسایت وردپرسی خودشون متصل بشن.

متاسفانه، در گذشته،هکرها راه هایی پیدا کردن که تونستن با سوء استفاده از این API به وبسایت های وردپرسی رخنه کنن.

اما روش هایی برای غیرفعال کردن XML-RPC وجود داره که قرار تو این مقاله اون رو به شما آموزش بدم.

البته میدونید که با استفاده از افزونه های امنیتی مثل Wordfence، SolidWP یا افزونه هایی مثل Simple Disable XML-RPC می تونید به راحتی و بدون کدنویسی، این API رو در سایت وردپرسی خودتون غیرفعال کنید.

اما در این مقاله قصد داریم تا بدون افزونه XML-RPC رو غیرفعال کنیم.

XML-RPC چیه؟

XML-RPC یک API هسته وردپرس هست که از نسخه 3.5 وردپرس در سال 2012 به طور پیش فرض در وردپرس فعال شده و تا به امروز هم فعال هست.

با استفاده از این API و پروتکل های XML و HTTPS می تونید با یک نرم افزار دیگه غیر از وردپرس به سایت وردپرسی متصل بشید.

این مقاله رو از دست نده:  لینک به محصولات قبلی و بعدی در صفحه تک محصول ووکامرس

به طور خلاصه، برای دسترسی به وبسایت وردپرسی و فرضا انتشار یک پست جدید نیازی به لاگین در سایت وردپرسی نداری.

برای مثال میتونی یک اپ اندروید بسازی و با XML-RPC به وبسایتت متصل بشی و فرضا یک پست جدید منتشر کنی یا تغییراتی در سایتت به وجود بیاری.

یا میتونی سایت رو به ابزارهای اتوماسیون مثل Zapier متصل کنی. خلاصه اینکه میتونی از راه دور و بدون نیاز به لاگین به پیشخوان سایت دستوراتی رو ارسال کنی.

این خوبه، اما در مواردی که از چنین کاربردی استفاده نمی کنی، رسما وجود این API میتونه خطر آفرین باشه.

در واقع XML-RPC میتونه در نقش یک Back door عمل کنه و هکر از اون برای نفوذ استفاده کنه. بنابراین اگر نیازی به استفاده از XML-RPC نداری و از کاربرد اون بی بهره ای، پس بهتره که کلا اون رو غیرفعال کنی.

حال قصد دارم تا روش های مختلفی که می تونید با استفاده از اون XML-RPC رو غیرفعال کنید رو بهتون آموزش بدم. روش اول از همه بهتره و بار منابع سرور رو هم کاهش میده اما خوب شاید برای همه راحت نباشه.

روش اول: غیرفعال کردن وردپرس XML-RPC با htaccess (پیشرفته)

خوب میدونید که فایل .htaccess یک فایل مهم در سرور سایت شماست. این فایل در مسیر root سایت در پوشه public_html وجود داره و به صورت عادی مخفی (hidden) هست.

این مقاله رو از دست نده:  3 روش تغییر آدرس ورورد وردپرس بدون افزونه با کدنویسی

پیشنهاد می کنم قبل از هر تغییری یک بک آپ یا کپی از این فایل داشته باشید تا در صورت بروز هر گونه مشکلی اون رو بازیابی کنید.

استفاده از این روش چندتا مزیت داره.

اول اینکه امکان دسترسی به این فایل برای هرکسی ممکن نیست و تقریبا میشه گفت فایلیه که دسترسی به اون مشکله.

دوم اینکه این فایل و کدهای درون اون اگر درست نوشته بشه تاثیر منفی روی عملکرد و performance سایت شما نمیزاره. چون دستورات XML-RPC رو حتی قبل ارسال به وردپرس غیرفعال میکنه.

خوب پس اول لازمه از طریق FTP یا ورود به هاست از طریق مرورگر، فایل htaccess رو پیدا کنید، اون رو ویرایش کنید و کد زیر رو به اون اضافه کنید.

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
 deny from all
allow from 123.123.123.123
</Files>

در خط 3 و4 دسترسی به فایل xmlrpc.php رو کلا غیرفعال کردیم و در خط 5 دسترسی از یک ip به خصوص رو مجاز دونستیم. اگه میخوای کلا غیرفعال کنی کافیه این خط رو هم پاک کنی.

این مقاله رو از دست نده:  نمایش تعداد محصولات فروخته شده در صفحه محصول ووکامرس در 5 خط (به همراه کد 💻 )

روش دوم: غیرفعال کردن وردپرس XML-RPC با قطعه کد (روش پیشنهادی)

در این روش کد php به فایل functions.php قالب فرزند اضافه می کنیم. اگر قالب فرزند ندارید با افزونه Generate Child Theme یدونه بسازید.

همچنین می تونید از افزونه هایی مثل Insert PHP Code Snippet یا WPCode برای اضافه کردن کد استفاده کنید.
من همیشه روش اول یعنی اضافه کردن کد به functions.php قالب فرزند یا نوشتن یک افزونه جدید رو می پسندم.

کافیه این قطعه کد رو به وردپرس اضافه کنید.

add_filter( 'xmlrpc_enabled', '__return_false' );

در این مثال از یک فیلتر درون ساخته وردپرس به نام xmlrpc_enabled استفاده کردیم.

روش سوم: XML-RPC را با یک افزونه غیرفعال کنید

گفتم که افزونه های زیادی هستن که می تونید با استفاده ازاون ها XML-RPC رو غیرفعال کنید. اگر از افزونه امنیتی مثل وردفنس استفاده می کنید که این روش بهتریه.

چون علاوه بر غیرفعال کردن XML-RPC کلی امکانات امنیتی دیگه هم بهتون میده.

افزونه های دیگه ای مثل Disable XML-RPC-API هم هستن که می تونید از اون ها استفاده کنید.

تست غیرفعال بودن وردپرس XML-RPC

خوب حالا از کجا مطمئن بشیم که XML-RPC غیرفعال شده؟

یک روش اینه که به انتهای ادرس سایت تون فایل xmlrpc.php رو اضافه کنید.

برای مثال:

https://mrebr.ir/xmlrpc.php

اگر غیرفعال باشه، چنین پیامی رو مشاهده می کنید

Forbidden: You don’t have permission to access this resource.

در غیر اینصورت یعنی فعاله و غیرفعال نشده.

خوب اگه سوال یا راهنمایی نیاز دارید در قسمت نظرات بپرسید پاسخ گوخواهم بود.

(5 از 5)
EBR
EBR

دانش آموخته مهندسی برق و مدرس وب هستم. حتی قبل از اینکه وارد دانشگاه بشم، به برنامه نویسی علاقه مند شدم و از اون زمان تا الان، هرگز کدنویسی رو رها نکردم. چه به عنوان مدرس، و چه به عنوان یک برنامه نویس. دغدغه اشتغال و بهبود فضای کار و زندگی برای همه دانشجویانم رو دارم. به همین خاطر معتقدم بدون آموزش پروژه محور و اصولی، اشتغال پایدار و با درآمد خوب شکل نمی گیره. علاقمند به برنامه نویسی، تکنولوژی و توسعه مهارت های نرم و الان هم بنیان گذار مجموعه دوناوب هستم و با یه تیم خوب و پرانرژی روزهام رو می گذرونم.

مقاله‌ها: 27

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *