xml-rpc وردپرس چیست؟ و نحوه غیرفعال کردن xml-rpc وردپرس

چیزی که برای 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 را ازآن خود کند که با استفاده از اون قادر به غیرفعال کردن این پروتکل در وردپرس خواهید بود. ابتدا افزونه مورد نظر را با کلیک روی دکمه زیر دانلود کرده و سپس با استفاده از آموزش آموزش نحوه نصب و کار کردن با افزونه ها در وردپرس اقدام به نصب و فعال سازی این افزونه در وردپرس کنید.
دانلود افزونه Disable XML-RPC وردپرسبعد از نصب و فعال سازی این افزونه قابلیت 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 براتون فراهم باشد.
در نهایت با استفاده از روشهای فوق قادر خواهید بود تا نسبت به غیرفعال کردن پروتکل xml-rpc در وردپرس اقدام کنید.
باسلام. یکی از اکستنشن های php 7 و به بالا soap هست. اگه از همون قسمت اکستنشن ها در سیپنل تیکش رو برداریم هم میشه غیرفعالش کرد؟
قبلا برای نصب تالار گفتگوی ips خیلی تلاش کردم و هر سایتی سر میزدم تمام کاربران و بعضی مدیران میگفتن که در برخی هاستها و مخصوصا اونهایی که mariadb استفاده میکنن نمیشه نصبش کرد. ولی مایوس نشدم و با فعال کردن تعداد زیادی از اکستنشن ها در php 7 بالاخره ips نصب شد و سرعتش هم خیلی عالی بود. سوالم اینه که اگر این تعداد زیاد اکستنشن که تقریبا 90 درصدشون هست رو الزاما بخاطر ips فعال نگه دارم مشکل خاصی چه از لحاظ سرعت و سازگاری و چه از لحاظ امنیت پیش میاد؟
باتشکر.
سلام، این مورد رو با هاستینگ خودتون مطرح کنید. باید ابتدا بررسی بشه که از چه اکستنشنهایی استفاده کردید و…
منبع فارسی خاصی سراغ دارید که تمام اکتنشن های پی اچ پی رو تعریف و کارکردشون رو توضیح بده؟ در گوگل خیلی سرچ کردم. اطلاعات خیلی خیلی مختصری فقط در چند مورد معدود تونستم پیدا کنم. باتشکر.
نه متاسفانه، میتونید لیست کل اکستنشنها رو از منابع خارجی در بیارید و بعد با جستجو در وب پارسی برای هر اکستنشن اطلاعات رو به دست بیارید.
باسلام وقت بخیر. اگه از کد مربوط به fanction.php استفاده کنم بعدش میتونم از جای خاصی مطمئن بشم که غیرفعال شده؟
مضافا اینکه دقیقا نمیدونم که کد رو در کجای fanction.php قرار بدم منظورتون از یک جای مناسب قرار بدید کجاست؟ اگر در آخرین سطر باشه خوبه؟ باتشکر.
سلام، کافیه با استفاده از برنامه اندروید وردپرس یا برنامه ویندوز وردپرس تلاش کنید که وارد بشید. خواهید دید که اجازه ورود به این شیوه داده نمیشه.
میتونید تو آخرین خط قبل از تگ بسته قرار بدین. منظور از جای مناسب هم این هست که وسط کدهای دیگه قرار داده نشه.
ببخشید کد غیرفال کردن xml rpc رو در fanction.php مربوط به child وارد کردم. اشکالی نداره؟ وقتی قالب رو آپدیت میکنم دوباره باید این کار رو انجام بدم؟ باتشکر.
خیر مشکلی نداره، بله در هر بار آپدیت اگر فایل فانکشن چایلدتم هم آپدیت میشه باید این کد را اضافه کنید.
با سلام
در سی پنل من خطای xml-rpc.php برای 403 میده. این خطا عادیه؟
سلام روزبخیر؛
اگر قابلیت رو محدود کردید بله طبیعیه.
سلام وقت بخیر.اگه این قابلیت غیرفعال بشه باعث قطع ارتباط اپ های وردپرسی با سایت میشه؟مثلا اپ فروشگاه دیگه به سایت متصل نمیشه؟
سلام وقت بخیر.اگه این قابلیت غیرفعال بشه باعث قطع ارتباط اپ های وردپرسی با سایت میشه؟مثلا اپ فروشگاه دیگه به سایت متصل نمیشه؟!!
سلام ممنون برای مقاله
موردی که هست اینکه میگید “کد را در مکان مناسب قرار دهید”، کل مقاله رو میبره زیر سوال و اونو ناقص میکنه چون عملا کاربر از این جا دیگه نمیدونه چیکار کنه، بله ممکنه برای قالبی محل کل فرق کنه اما شما باید یک حدودی بگید کجا بزاره! نه صرف اینکه در محل مناسب قرار دهید!! ؟؟
سلام روزبخیر؛
جایگاه درج کد فرقی نداره میتونید کد رو به انتهای فایل اضافه کنید.
دمتون گرم جالب بود
ساده ترین راه ، حذف فایل xmlrpc خود وردپرس هست