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

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

xml-rpc وردپرس چیست؟

در این مقاله قصد داریم xml-rpc وردپرس را معرفی کرده و روش های غیرفعال کردن آن را جهت امنیت بیشتر در وردپرس ، شرح دهیم.

XML-RPC یا XML Remote Procedure Call ، پروتکلی است که توسط آن میتوان از راه دور با وب سایت خود تعامل داشت. در واقع با استفاده از XML و مکانیسم انتقالی HTTP ، دستورات را از راه دور فراخوانی میکند. XML-RPC این امکان را به شما خواهد داد تا با استفاده از نرم‌افزارهایی مانند Windows Live Writer، برنامه اندروید وردپرس یا با استفاده از سرویس‌هایی مثل IFTTT وب سایت خود را به این سیستم ها متصل نمایید. همچنین این امکان را خواهد داد تا وبلاگ های دیگر به مطالب وب سایت شما لینک کنند.

 XML-RPC اولین بار توسط دیو وینر از شرکت userland به همراه مایکروسافت در سال ۱۹۹۸ تولید شد که امروزه نسخه ارتقا یافته آن را با نام SOAP در دسترس میباشد.

پروتکل xml-rpc قابلیت های زیر را در وردپرس فعال میکند:

  • اتصال به سایت وردپرس خود با استفاده از گوشی هوشمند
  • pingbacks و trackbacks در صورت لینک دهی وب سایت های دیگر به وب سایت شما
  • جت پک (Jetpack)

 

کاربرد XML-RPC چیست ؟

با توجه به رشد روزافزون استفاده از گوشی های هوشمند ، استفاده از سرویس هایی جهت مدیریت وب سایت وردپرسی نیز مطرح گردید.پروتکل xml-rpc وردپرس این امکان را فراهم میکند تا بتوانید از طریق سرویس‌هایی از قبیل  IFTTT، نرم‌افزارهای مدیریت سایت وردپرس در محیط ویندوز یا سیستم عامل اندروید و… به وب سایت خود دسترسی و کنترل داشته باشید و تنظیمات مورد نظر خود را بر روی وب سایت خود فعال نمایید. این سرویس ها این امکان را فراهم میکنند تا از طریق XML-RPC از مشخصات خود در wordpress.com استفاده کرده و وارد هر سایت وردپرسی که به آن دسترسی داشتید بشوید. حال در صورتیکه شخص دیگری غیر از شما پسورد سایت شما را بداند ، میتواند به راحتی به تمامی بخش های وب سایت شما دسترسی داشته باشد. از نسخه 3.5 وردپرس تیم توسعه دهنده وردپرس ، امکان فعال و غیرفعال کردن این پروتکل را از وردپرس وردپرس حذف نمود.

 

چرا باید xml-rpc وردپرس را غیرفعال کنیم؟

در صورتیکه وب سایت وردپرسی خود را به یکی از برنامه اندرویدی وردپرس، برنامه ویندوز و یا سرویس IFTTT متصل کرده اید ، هر شخصی که از این نرم افزار استفاده کند ، خواهد توانست به وب سایت شما دسترسی داشته باشد. حتی ممکن است برخی افزونه ها بتوانند از طریق xml-rpc به وب سایت وردپرسی شما دسترسی داشته باشند. بنابراین در صورتیکه از این سرویس ها استفاده نمیکنید، جهت ارتقا امنیت وب سایت خود ، امکان xml-rpc وردپرس را غیرفعال نمایید تا هکرها نتوانند به وب سایت شما درخواست های ورود و ... بدون بررسی و نیاز به Captcha را ارسال نموده و اطلاعات کاربران و محتوای وب سایت را بدست آورند.

 

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

جهت غیرفعال کردن این قابلیت ۳ روش وجود دارد :

۱. استفاده از افزونه

۲. استفاده از کد در فایل فانکشن قالب

۳. استفاده از کد در فایل htaccess. هاست

 

افزونه غیرفعال کردن xml-rpc وردپرس

برخی افزونه هایی که میتوانند xml-rpc را غیرفعال کنند را معرفی مینماییم:

• Disable XML-RPC را میتوانید از مخزن وردپرس دانلود نموده و از طریق آن XML-RPC را غیرفعال کنید. بعد از نصب و فعال سازی افزونه Disable XML-RPC ، XML-RPC  در وردپرس غیرفعال شده و هیچ نیازی به انجام تنظیمات خاصی در این افزونه نیست.

• Stop XML-RPC Attack : تنها به جت پک و دیگر ابزارهای Automattic اجازه دسترسی به xmlrpc.php را از طریق htaccess. میدهد.

• Control XML-RPC Publishing : تنها گزینه مربوط به انتشار از راه دور را به قسمت تنظیمات > نوشتن برمیگرداند.

• iThemes Security, Anti-Malware Security and Brute-Force Firewall and All in One WP Security &Firewall : این ابزارهای امنیتی شامل ویژگی محفاظت در برابر brute force هستند. آنها تلاش های تکراری برای ورود با استفاده از xmlrpc.php یا بدون استفاده از آن را ثبت کرده و کاربران و سایت های مشکوک را بلاک میکنند.

 

کد غیرفعال کردن xml-rpc وردپرس

روش دوم برای غیرفعال کردن پروتکل xml-rpc در وردپرس ، از طریق فایل فانکشن قالب است. برای انجام این کار پس از وارد شدن به پیشخوان وردپرس ، به مسیر نمایش> ویرایشگر رفته و سپس از ستون سمت چپ روی فایل functions.php کلیک کنید تا فایل مورد نظر برای ویرایش باز شود. یا اینکه میتوانیم وارد کنترل پنل هاست خود شده و سپس گزینه File Manager از بخش FILES را انتخاب میکنیم. پس از وارد شدن به صفحه مدیریت فایل ها ، به مسیر public_html/wp-content/themes بروید.سپس وارد پوشه قالب فعلی سایت خود شده و فایل functions.php را با کلیک راست و انتخاب گزینه Edit  ویرایش کنید.حال کد زیر را در این فایل قرار دهید: 

add_filter('xmlrpc_enabled', '__return_false');

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

 

غیرفعال کردن xml-rpc وردپرس از طریق htaccess.

با استفاده از این روش ، دسترسی به این پروتکل از سایت غیرفعال خواهد شد. از مزایای این روش این است که در صورتیکه بخواهید دسترسی به xml-rpc را برای آی پی خاصی فعال نمایید میتوانید این کار را انجام دهید برای انجام این کار وارد کنترل پنل سی پنل هاست خود شده و سپس از بخش FILES ، گزینه File Manager را انتخاب میکنیم. سپس فایل htaccess. را ویرایش میکنیم.در صورت پیدا نکردن این فایل بر روی گزینه Setting در بالای صفحه و در سمت راست کلیک کرده و سپس در صفحه باز شده، تیک گزینه show hidden files  را فعال نموده و در نهایت گزینه Save را بزنید.

حال بر روی فایل htaccess. کلیک راست کرده و سپس گزینه Edit را میزنیم و سپس کدهای زیر را در آن قرار میدهیم.

 

 


# Prevent Access to xmlrpc.php File <Files xmlrpc.php> order deny,allow deny from all allow from 92.92.92.92 <Files/>

به جای آی پی 92.92.92.92 ، آی‌پی مورد نظر جهت دسترسی به XML-RPC را قرار میدهیم.

 

نقاط ضعف  XML-RPC

مشکل امنیتی XML-RPC در اینجاست که هکرها می توانند با استفاده از این قابلیت ، حملات brute force را آغاز کرده و سپس نام های کاربری و پسوردهای کاربران را بدست آورند.مشکلاتی که در غیرفعال کردن این API وجود دارد این است که تمام ابزارهایی که از این قابلیت استفاده می کنند را نیز غیرفعال می کند.به عنوان مثال اگر در وب سایت خود از جت پک استفاده میکنید ، برخی از ویژگی های این افزونه از XML-RPC استفاده می کنند.

در حملات Brute force هکرها تلاش می کنند تا از طریق xmlrpc.php وارد سایت وردپرس شده که این کار را با ترکیب تعداد زیادی از نام های کاربری و کلمات عبور انجام می دهند. روشی وجود دارد که از طریق xmlrpc.php به هکر اجازه می دهد تا از یک خط دستور برای حدس زدن صدها پسورد استفاده کند. به طوریکه با تنها ۳ یا ۴ درخواست HTTP ، هکر می تواند به صدها پسورد دست پیدا کرده و از ابزارهایی که برای جلوگیری از این نوع حمله تعبیه شده اند را دور بزند. با حملات DoS از طریق ارسال درخواست های pingback با استفاده ازxmlrpc.php به وب سایت های وردپرسی ، هکر میتواند به سایت نفوذ کند.