اگر میخواهید یک قدم به امنیت سایت وردپرسی خود نزدیک شوید این آموزش را بادقت بخوانید.
xml-rpc چیست؟
XML-RPC در وردپرس یک روش برای اتصال برنامه های کاربردی، ابزارها و سرویس ها به سایت وردپرسی شما است تا بتوانند کارهای مختلفی را انجام دهند. ولی همین ابزار مفید در وردپرس می تواند خطری برای امنیت سایت شما نیز باشد.
اگر مطمئن هستید که در سایت شما هیچ استفاده ای از XML-RPC نمی شود، (به عنوان مثال نرم افزار اندرویدی وردپرس و نرم افزار اندرویدی ووکامرس از قابلیت xml-rpc برای اتصال به سایت و تبادل اطلاعات استفاده میکنند) بهتر است آن را غیرفعال یا مسدود نمایید.
در این آموزش به روش های مختلف مسدود کردن XML-RPC می پردازیم.
برای غیرفعال یا مسدود کردن XML-RPC در وردپرس روش های مختلفی وجود دارد که به توضیح هر کدام می پردازیم.
هدف xmlrpc.php چیست و چه کاربردهایی دارد؟
فایل xmlrpc.php
در وردپرس یکی از فایلهای اصلی هسته سیستم است که وظیفه فراهم کردن امکان برقراری ارتباط بین وردپرس و سرویسها یا برنامههای خارجی از طریق پروتکل XML-RPC را دارد. XML-RPC یک پروتکل قدیمی و ساده است که امکان ارسال درخواستها از طریق HTTP و انتقال دادهها با استفاده از XML را فراهم میکند. به عبارت دیگر، این پروتکل به وردپرس اجازه میدهد که از راه دور (remote) کنترل شود و دادهها بین سرور و کلاینت منتقل شوند.
کاربردهای اصلی xmlrpc.php
در وردپرس شامل موارد زیر است:
- انتشار محتوا از راه دور: با استفاده از XML-RPC، میتوانید از نرمافزارها یا اپلیکیشنهای خارجی (مانند برنامه موبایل وردپرس) به وبسایت وردپرس خود متصل شوید و از طریق آن محتوا را مدیریت کنید. برای مثال، میتوانید مقالات جدید بنویسید، نظرات را مدیریت کنید یا پستها را بهروزرسانی کنید، بدون اینکه نیاز به ورود مستقیم به محیط مدیریت وردپرس داشته باشید.
- ارتباط با ابزارهای شخص ثالث: برخی از سرویسها و ابزارهای شخص ثالث از پروتکل XML-RPC برای ارتباط با سایتهای وردپرسی استفاده میکنند. برای مثال، سرویسهای پینگ یا بروزرسانیهای وبلاگها میتوانند از این فایل برای اعلام تغییرات جدید و بروزرسانیها استفاده کنند.
- مدیریت چند سایت به صورت متمرکز: این فایل به کاربران امکان میدهد تا از یک مکان واحد چندین سایت وردپرسی را مدیریت کنند. به کمک ابزارهای مدیریت وبسایت از راه دور، میتوانید چندین سایت را به صورت همزمان مدیریت کنید.
با این حال، از آنجایی که XML-RPC به دلیل قدیمی بودن و برخی آسیبپذیریهای امنیتی شناخته شده است، بسیاری از کاربران یا توسعهدهندگان وردپرس ترجیح میدهند این قابلیت را غیرفعال کنند و به جای آن از روشهای جدیدتر و امنتری مانند REST API استفاده کنند.
چرا باید xmlrpc.php را غیرفعال کنید؟
xml-rpc در وردپرس علیرغم کاربردهای مفیدی که دارد، در برخی موارد میتواند مشکلات امنیتی جدی برای وبسایت شما ایجاد کند. به همین دلیل بسیاری از توسعهدهندگان و مدیران وبسایتهای وردپرسی ترجیح میدهند این فایل را غیرفعال کنند. در ادامه به برخی از دلایل اصلی برای غیرفعال کردن xml-rpc پرداختهایم:
1. آسیبپذیریهای امنیتی
یکی از مهمترین دلایلی که باعث میشود توصیه شود فایل xmlrpc.php
غیرفعال شود، آسیبپذیریهای امنیتی مرتبط با این فایل است. XML-RPC امکان ورود از راه دور را فراهم میکند، و در گذشته هکرها از آن برای حملاتی مانند حملات brute force (حمله حدس رمز عبور) استفاده کردهاند. از آنجایی که در XML-RPC میتوان چندین درخواست ورود را در یک درخواست واحد ارسال کرد، مهاجمان میتوانند هزاران تلاش برای ورود را با استفاده از یک درخواست انجام دهند. این موضوع فشار زیادی بر سرور وارد میکند و در صورت ضعف امنیتی، میتواند منجر به نفوذ شود.
2. حملات DDoS
فایل xmlrpc.php
میتواند هدف حملات DDoS (Distributed Denial of Service) قرار بگیرد. در این نوع حملات، مهاجمان از XML-RPC برای ارسال تعداد زیادی درخواستهای همزمان به سرور استفاده میکنند که باعث میشود سرور دچار بار اضافی شده و نتواند به درستی پاسخگوی کاربران واقعی باشد. این نوع حملات باعث کاهش سرعت و حتی قطع دسترسی به سایت میشود.
3. استفاده محدود
با اینکه xmlrpc.php
در زمانهای گذشته بسیار کاربردی بود، امروزه با معرفی REST API در وردپرس، نیاز به استفاده از XML-RPC کاهش یافته است. REST API امنیت و کارایی بیشتری دارد و به عنوان جایگزینی مناسب برای XML-RPC عمل میکند. بسیاری از توسعهدهندگان و وبمسترها ترجیح میدهند با غیرفعال کردن XML-RPC، از REST API برای برقراری ارتباطات و مدیریت از راه دور استفاده کنند.
4. بهبود عملکرد سایت
غیرفعال کردن فایل xmlrpc.php
میتواند به بهبود عملکرد سایت کمک کند. از آنجا که این فایل میتواند منابع سرور را درگیر کند، غیرفعال کردن آن میتواند بار اضافی روی سرور را کاهش دهد و از وقوع حملات brute force یا DDoS جلوگیری کند. در نتیجه، سرعت بارگذاری سایت و دسترسی به آن بهبود مییابد.
به طور کلی، اگر نیازی به استفاده از قابلیتهای مربوط به xmlrpc.php
ندارید (مانند مدیریت سایت از راه دور)، بهتر است برای بهبود امنیت و عملکرد سایت وردپرسی خود، این فایل را غیرفعال کنید.
نحوه تشخیص فعال یا غیرفعال بودن xml-rpc
تشخیص فعال یا غیرفعال بودن فایل xmlrpc.php
در وردپرس اهمیت زیادی دارد، چرا که این فایل میتواند باعث ایجاد مشکلات امنیتی یا عملکردی در سایت شما شود. برای اینکه بدانید XML-RPC در سایت شما فعال است یا غیرفعال، روشهای مختلفی وجود دارد که در ادامه به برخی از آنها اشاره خواهیم کرد.
1. بررسی مستقیم با استفاده از مرورگر
یکی از سادهترین روشها برای بررسی فعال یا غیرفعال بودن XML-RPC این است که آدرس فایل مربوطه را مستقیماً در مرورگر خود وارد کنید. برای این کار کافی است به آدرس زیر مراجعه کنید:
https://yourwebsite.com/xmlrpc.php
اگر این فایل فعال باشد، پیام زیر نمایش داده میشود:
XML-RPC server accepts POST requests only.
این پیام نشان میدهد که xmlrpc.php
روی سایت شما فعال است و آماده دریافت درخواستهای از راه دور است. اما اگر XML-RPC غیرفعال شده باشد، به احتمال زیاد با یکی از این پیامها مواجه میشوید: 404 Not Found (یعنی فایل وجود ندارد) یا یک پیام دیگر که نشاندهنده مسدود بودن دسترسی به این فایل است.
2. استفاده از افزونههای امنیتی
وردپرس افزونههای امنیتی متعددی دارد که میتوانند به شما کمک کنند تا بررسی کنید آیا XML-RPC فعال است یا خیر. برخی از این افزونهها به شما امکان میدهند تا بهصورت خودکار این فایل را غیرفعال کنید و حتی گزارشاتی از فعالیتهای مربوط به XML-RPC را ارائه دهند. افزونههایی مانند افزونه امنیتی Wordfence یا افزونه iThemes Security ابزارهای مناسبی برای این کار هستند. پس از نصب افزونه، میتوانید از بخش تنظیمات آن مطمئن شوید که XML-RPC غیرفعال شده است.
3. استفاده از ابزارهای آنلاین
برخی از وبسایتها ابزارهای آنلاین رایگانی ارائه میدهند که به شما کمک میکنند بررسی کنید که آیا XML-RPC روی سایت شما فعال است یا نه. برای استفاده از این ابزارها کافی است آدرس سایت خود را وارد کرده و منتظر بمانید تا نتایج نشان دهند که این پروتکل فعال است یا غیرفعال. این ابزارها معمولاً به سرعت نتایج را به شما نمایش میدهند و نیازی به نصب هیچ افزونهای نیست.
4. بررسی فایلهای پیکربندی وردپرس
در صورتی که از روشهای فنیتری مانند تنظیمات سرور یا فایلهای پیکربندی استفاده میکنید، میتوانید از طریق دسترسی به فایلهای وردپرس خود بررسی کنید که آیا XML-RPC فعال است یا غیرفعال. بهعنوان مثال، اگر در فایل .htaccess
یا فایلهای مربوط به سرور (مانند Nginx) قوانینی برای مسدود کردن دسترسی به xmlrpc.php
قرار داده شده باشد، میتوانید این تنظیمات را مشاهده و ویرایش کنید.
روش های مختلف غیرفعال کردن XML-RPC
- روش اول : مسدود کردن XML-RPC توسط htaccess.
- روش دوم : غیرفعال کردن XML-RPC با قطعه کد
- روش سوم : غیرفعال کردن XML-RPC با افزونه
نکته : بهترین روش برای مسدود کردن XML-RPC استفاده از فایل htaccess. است زیرا این روش منابع کمتری مصرف می کند زیرا هیچ پردازشی در وردپرس انجام نمی شود. با این حال روش های دیگر برای مبتدیان مناسب تر است.
مسدود کردن XML-RPC توسط htaccess.
این روش فقط برای افراد حرفه ای توصیه می شود زیرا باید فایل htaccess. را ویرایش کنند. بنابراین افراد مبتدی بهتر است از دو روش دیگر استفاده نمایند.
این روش مزیت های دیگری هم دارد از جمله اینکه شما میتوانید آی پی هایی که مورد اعتماد شما هستند باز بگذارید و دیگر آی پی ها را مسدود نمایید. همچنین این روش هیچ تاثیر منفی روی کارکرد وردپرس ندارد زیرا قبل از اینکه درخواست ها به وردپرس منتقل شوند، مسدود خواهند شد.
شما باید کد زیر را به فایل htaccess. خود اضافه نمایید.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
اگر میخواهید از آی پی های مشخصی بتوانید به XML-RPC وصل شوید باید بجای عبارت 123.123.123.123 آی پی مورد نظر خود را وارد کنید. اگر میخواهید بیش از یک آی پی را باز کنید باید آی پی ها را در ادامه آی پی اول وارد کنید و هر آی پی را با یک فاصله از دیگر آی پی ها جدا کنید.
روش غیرفعال کردن XML-RPC با قطعه کد
برای اجرای این روش باید یک قطعه کد را به کد های وردپرس اضافه نمایید. برای اینکار باید قطعه کد مربوطه را به فایل function.php قالب سایت خود اضافه نمایید.
فقط کافیست کد زیر را به انتهای فایل function.php قالب فعال سایت خود اضافه نمایید.
add_filter('xmlrpc_enabled', '__return_false');
غیرفعال کردن XML-RPC با افزونه (مخصوص افراد مبتدی)
برای غیرفعال کردن xml-rpc در سایت خود فقط کافیست افزونه زیر را در سایت خود نصب کرده و فعال نمایید.
دانلود افزونه غیرفعال کردن xml-rpc
برای نصب افزونه دو راه دارید :
1 – جستجوی عبارت Disable XML-RPC در صفحه افزودن افزونه و نصب و فعال سازی آن.
2- باز کردن لینک بالا و دانلود فایل افزونه و آپلود آن در صفحه افزودن افزونه و نصب و فعالسازی آن.
منبع :
https://www.wpbeginner.com/plugins/how-to-disable-xml-rpc-in-wordpress/