چیزی که برای xml-rpc وردپرس در ویکیپدیا ذکر شده این است که اکسامال-ارپیسی یک پروتکل «فراخوانی دستورها از راه دور است که با اکسامال و با استفاده از مکانیسم انتقالی اچتیتیپی اطلاعات را منتقل میکند. XML-RPC اولین بار توسط دیو وینر از شرکت userland به همراه مایکروسافت در سال ۱۹۹۸ تولید شد که امروزه نسخهی بهبود یافتهٔ آن را با نام SOAP میشناسیم. به بیان سادهتر xml-rpc وردپرس این امکان را به شما خواهد داد تا با استفاده از نرمافزارهایی همچون Windows Live Writer، برنامه اندروید وردپرس یا با استفاده از سرویسهایی مثل IFTTT قادر باشید تا به راحتی نسبت به اتصال سایت خود به چنین سیتمهایی اقدام کنید.
در این مقاله قصد دارم تا به معرفی xml-rpc وردپرس بپردازم و سپس به معرفی راهکارهایی که با استفاده از اون میتونید این قابلیت را در سایت خود غیرفعال کنید بپردازم تا اگر نیازی به چنین قابلیتی در سایت خودتون ندارید با غیرفعال کردن اون امنیت وردپرس را افزایش دهید. پس تا انتها با ما همراه باشید.
xml-rpc وردپرس چیست؟
همینطور که کاربران موبایلی روز به روز در حال بیشتر و بیشتر شدن بودند احساس نیاز به استفاده از سرویسهایی که از طریق آن بتوان سایت وردپرسی را مدیریت کرد بیشتر شد تا اینکه درست از نسخه 3.5 وردپرس تیم توسعه دهنده وردپرس بعد از قابل اطمینان دانستن این پروتکل امکان فعال کردن و یا غیرفعال کردن xml-rpc وردپرس را از منوی پیشخوان وردپرس برداشت.
پروتکل xml-rpc وردپرس این امکان را به شما خواهد داد که از طریق این پروتکل امکان اتصال انواع سرویسهایی مثل IFTTT، نرمافزارهای مدیریت سایت وردپرس در محیط ویندوز یا سیستم عامل اندروید و… را فراهم کنید تا دسترسی و کنترل بر روی سایت از طذیق این پروتکل که در بستر http اراسه میشود فراهم شود.
پس تا اینجای کار متوجه شدید که xml-rpc وردپرس در واقع یک راه برای ایجاد ارتباط سایت با سرویسهایی است که از طریق اون بتونید تا اقدام به مدیریت سایت کرده و امکان مدیریت نوشته ها در وردپرس، مدیریت تنظیمات سایت و… را بسته به امکاناتی که بر روی سرویس مورد نظر ارائه شده است فعال کنید.
چرا باید xml-rpc وردپرس را غیرفعال کنیم؟
خب فرض کنید که از برنامه اندرویدی وردپرس، برنامه ویندوز و یا همون سرویس IFTTT استفاده میکنید و سایت وردپرس خودتونو به این سرویسها متصل کردید تا به راحتی از طریق اونها اقدام به مدیریت سایت کنید. مشکلی که در این حین ممکنه پیش بیاد اینه که با استفاده از چنین سرویسهایی معمولا شما در حال لاگین هستید و هرکسی که قادر به استفاده از نرم افزار باشه درواقع بر روی سایت شما تسلط خواهد داشت.
بنابراین این مسئله امنیت وردپرس را تحت الشعاع قرار داده و اگه درست بهش پرداخته نشه باعث ایجاد مشکلات در سایت خواهد شد. یا اینکه حتی برخی بیان و در قالب افزونه وردپرس و یا کدهایی که به شما میدهند به گونه ای عمل کنند که از طریق xml-rpc وردپرس امکان کنترل سایت را داشته باشند. پس اگر شما از نرمافزارهای مذکور و یا سرویس های انلاین مثل IFTTT در وردپرس استفاده نمیکنید لازمه تا قابلیت xml-rpc وردپرس را به صورت کلی غیرفعال کنید.
نحوه غیر فعال کردن xml-rpc وردپرس
برای غیرفعال کردن xml-rpc وردپرس به صورت کلی سه راهکار پیش روی شما خواهد بود که به ترتیب عبارتند از:
- استفاده از افزونه
- استفاده از کدنویسی در فایل فانکشن قالب
- استفاده از کدنویسی در فایل htaccess. هاست
حالا با هر یک از روشهای گفته شده که راحت هستید میتونید تا با توضیحاتی که در ادامه برای هر روش بیان میشه اقدام به غیرفعال کردن پروتکل xml-rpc وردپرس در سایت خودتون بکنید.
افزونه غیرفعال کردن xml-rpc وردپرس
افزونهای که برای غیرفعال کردن xml-rpc وردپرس قصد معرفی آن را دارم با عنوان Disable XML-RPC در مخزن وردپرس به ثبت رسیده و تا به امروز توانسته است تا بیش از 90.000 نصب فعال و کسب امتیاز 5 را ازآن خود کند که با استفاده از اون قادر به غیرفعال کردن این پروتکل در وردپرس خواهید بود. ابتدا افزونه مورد نظر را با کلیک روی دکمه زیر دانلود کرده و سپس با استفاده از آموزش آموزش نحوه نصب و کار کردن با افزونه ها در وردپرس اقدام به نصب و فعال سازی این افزونه در وردپرس کنید.
بعد از نصب و فعال سازی این افزونه قابلیت XML-RPC در وردپرس غیرفعال شده و هیچ نیازی به انجام تنظیمات خاصی در این افزونه نخواهید داشت. چرا که با نصب این افزونه منویی به وردپرس شما اضافه نخواهد شد.
کد غیرفعال کردن xml-rpc وردپرس
دومین راهکاری که برای غیرفعال کردن پروتکل xml-rpc در وردپرس میتونید ازش استفاده کنید از طریق فایل فانکشن قالب خواهد بود. برای این کار میتونید تا پس از اینکه وارد پیشخوان وردپرس شدید به مسیر نمایش> ویرایشگر مراجعه کرده و سپس از ستون سمت چپ روی فایل functions.php کلیک کنید تا فایل مورد نظر برای ویرایش باز شود. و یا اینکه پس از اینکه وارد هاست خودتون شدید مشابه تصویر زیر ابتدا روی File Manager کلیک کنید.
پس از اینکه وارد صفحه مدیریت فایلها در وردپرس شدید به مسیر public_html/wp-content/themes مراجعه کنید و وارد پوشه قالبی که در سایتتون فعال هستش شده و فایل functions.php را برای ویرایش کردن پیدا کنید. بعد از یافتن فایل مورد نظر اگر از هاست سی پنل استفاده میکنید روی فایل راست کلیک کرده و گزینه Edit را انتخاب کنید و اگر هم از هاست دایرکت ادمین استفاده میکنید روی گزینه Edit که در مقابل فایل قرار داره کلیک کرده و کد زیر را در مکان مناسبی از فایل قرار دهید.
add_filter( 'xmlrpc_enabled', '__return_false' );
دقت کنید ا قبل از انجام هرگونه تغییری در فایل فانکشن قالب یک نسخه کپی از اون داشته باشید تا در صورت بروز خطا بتونید مشکل را سریعا برطرف کنید.
بعد از افزودن کد در فانکشن قالب قابلیت xml-rpc در وردپرس غیرفعال خواهد شد.
غیرفعال کردن xml-rpc وردپرس از طریق htaccess.
با استفاده از روش غیرفعال کردن xml-rpc وردپرس در htaccess. در واقع دسترسی به این پروتکل از سایت غیرفعال خواهد شد. پس اگر کسی هم قادر به استفاده از این قابلیت باشد امکان استفاده از آن را نخواهد داشت. یکی از مزیتهای این روش اینه که اگر بخواهید تا امکان دسترسی به پروتکل xml-rpc وردپرس را برای آیپی خاصی فعال بگذارید براتون فراهم خواهد بود و میتونید تا با وارد کردن آیپی امکان دسترسی را برای افراد مورد نظر فراهم کنید.
برای این منظور وارد هاست خودتون شده و سپس با مراجعه به File Manager هاست به دنبال فایلی با نام htaccess. بگردید. این فایل جزو فایلهای مخفی است که در اولین ورود به مدیریت فایل هاست اونو پیدا نخواهید کرد. بنابراین بر روی دکمه Setting :ه در بالای صفحه و در سمت راست قرار داره کلیک کنید و سپس مشابه تصویر زیر تیک گزینه show hidden files را انتخای کرده و در نهایت روی دکمه Save کلیک کنید تا امکان نمایش این فایل برای شما فراهم شده و به اون دسترسی پیدا کنید.
حالا روی فایل مورد نظر راست کلیک کرده و گزینه Edit را انتخاب کنید تا صفحه ویرایش فایل براتون باز شده و بعدش کدهای زیر را در مکان مناسبی از فایل htaccess. اضافه کنید.
# Prevent Access to xmlrpc.php File
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
سپس به جای 123.123.123.123 آیپی مورد نظر خودتون را قرار بدین تا امکان دسترسی به پروتکل XML-RPC براتون فراهم باشد.
این نکته را به خاطر داشته باشید که با بهروزرسانی و تغییر پیوند یکتای وردپرس فایل htaccess. در هاست بهروز شده و کدهای پیشفرض جایگزین اون خواهند شد. پس اگر هر نوع کدی که در فایل دارید را در یک جا به عنوان نسخه پشتیبان داشته باشید تا اگر مشکلی برای سایت پیش اومد و مجبور به تغییر پیوند یکتا شدید مجددا بعد از ساخته شدن فایل جدید htaccess. کدهای دیگه را به آن اضافه کنید.
در نهایت با استفاده از روشهای فوق قادر خواهید بود تا نسبت به غیرفعال کردن پروتکل xml-rpc در وردپرس اقدام کنید.
امیدوارم که این آموزش هم مورد توجه شما قرار گرفته باشه و با استفاده از اون تونسته باشید تا به راحتی اقدام به غیرفعال کردن XML-RPC در وردپرس اقدام کنید. اگر در رابطه با این آموزش سوال و یا مشکلی برای شما پیش اومد میتونید از طریق دیدگاهها اعلام کنید تا در کوتاهترین زمان ممکن پاسخگوی شما باشم.