جلوگیری از حملات XML-RPC در وردپرس
یکی از حملاتی که خیلی وقتها سایتهای وردپرسی رو درگیر میکنه، حمله به فایل معروف xmlrpc.php هست. این فایل توی پوشه اصلی وردپرس قرار داره و اگر دسترسی بهش محدود نشه، میتونه راه نفوذی برای مهاجمها باشه. با جلوگیری از حملات XML-RPC در وردپرس، میتونیم یه قدم بزرگ برای بالا بردن امنیت سایت برداریم.
وردپرس واقعاً یکی از بهترین سیستمهای مدیریت محتواست و این موضوع جای بحث نداره. ولی وقتی حرف امنیت وسط میاد، بعضیها که خودشون سیستم اختصاصی دارن، شروع میکنن به بد گفتن از وردپرس تا محصول خودشون رو بفروشن. در حالی که همونطور که توی دوره آموزش امنیت وردپرس هم گفتم، امنیت یه چیز نسبیه و کاملاً بستگی داره به تنظیماتی که انجام دادید و سروری که سایت روش میزبانی میشه.
مثلاً فرض کنید یه نفر وارد دیتاسنتر بشه و هارد سرور شما رو بدزده! خب این دیگه ربطی به وردپرس نداره، مشکل از امنیت دیتاسنتره که باید بررسی و تقویت بشه.
بذار از بحثهای قبلی بگذریم و مستقیم بریم سراغ اصل ماجرا. وردپرس یه پروتکل ارتباطی داره به اسم XML-RPC که برای اجرای از راه دور توابع سایت استفاده میشه. یعنی چی؟ یعنی یه سایت دیگه یا یه اپلیکیشن میتونه از بیرون، با استفاده از این پروتکل، به توابع قالب یا افزونههای سایت شما دسترسی پیدا کنه و اونها رو اجرا کنه.
این قابلیت برای بعضی کاربردها مفیده، اما اگه درست مدیریت نشه، میتونه تبدیل به یه نقطه ضعف امنیتی بشه.
همچنین آموزش خالی کردن کش DNS را در ویندوز، لینوکس و مک خالی کنیم؟ را در این صفحه مشاهده کنید.
XML-RPC دقیقاً چیه؟
بذار از بحثهای قبلی بگذریم و مستقیم بریم سراغ اصل ماجرا. وردپرس یه پروتکل ارتباطی داره به اسم XML-RPC که برای اجرای از راه دور توابع سایت استفاده میشه. یعنی چی؟ یعنی یه سایت دیگه یا یه اپلیکیشن میتونه از بیرون، با استفاده از این پروتکل، به توابع قالب یا افزونههای سایت شما دسترسی پیدا کنه و اونها رو اجرا کنه.
این قابلیت برای بعضی کاربردها مفیده، اما اگه درست مدیریت نشه، میتونه تبدیل به یه نقطه ضعف امنیتی بشه.XML-RPC دقیقاً چیه؟
بذار از بحثهای قبلی بگذریم و مستقیم بریم سراغ اصل ماجرا. وردپرس یه پروتکل ارتباطی داره به اسم XML-RPC که برای اجرای از راه دور توابع سایت استفاده میشه. یعنی چی؟ یعنی یه سایت دیگه یا یه اپلیکیشن میتونه از بیرون، با استفاده از این پروتکل، به توابع قالب یا افزونههای سایت شما دسترسی پیدا کنه و اونها رو اجرا کنه.
این قابلیت برای بعضی کاربردها مفیده، اما اگه درست مدیریت نشه، میتونه تبدیل به یه نقطه ضعف امنیتی بشه.

خیلی از ما اصلاً از قابلیت XML-RPC استفادهای نداریم، پس منطقیه که برای جلوگیری از حملات احتمالی، این بخش رو ببندیم. معمولاً وقتی یک هکر بخواد از طریق XML-RPC به سایت وردپرسی شما نفوذ کنه، از دو روش استفاده میکنه:
بررسی دقیق خطاها، مخصوصاً زمانی که سایت خطای دیتابیس میده
خواندن درخواستهایی مثل POST /xmlrpc.php HTTP/1.0 داخل لاگهای وبسرور
همچنین مقاله DNS چیست و چگونه کار میکند؟ را در این صفحه مطالعه کنید.
نحوه جلوگیری از حملات XML-RPC در وردپرس
برای جلوگیری از حملات XML-RPC در وردپرس، بهترین راه اینه که مستقیم از طریق فایل .htaccess این قابلیت رو ببندیم.
برای این کار:
وارد File Manager هاست بشید
به مسیر public_html برید
فایل .htaccess رو باز و ویرایش کنید
حالا در ابتدای فایل، این کد رو قرار بدید:
<files xmlrpc.php>
order allow,deny
deny from all
</files>
و تمام! به همین سادگی دسترسی به فایل xmlrpc.php کاملاً بسته میشه و دیگه هیچ هکری نمیتونه از این مسیر وارد سایتتون بشه.
اگر از NGINX استفاده میکنید
خیلی از دوستان از وبسرور NGINX استفاده میکنن، و اگر شما هم جزو اونها هستید، احتمالاً روی یک سرور اختصاصی یا نیمهاختصاصی کار میکنید—که واقعاً جای تبریک داره. برای بستن دسترسی به XML-RPC در NGINX، باید فایل /etc/nginx/nginx.conf رو باز کنید و کد زیر رو داخل بخش server{} قرار بدید:
location = /ahura/xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 403;
}
به همین سادگی! از این لحظه به بعد، فایل xmlrpc.php روی سرور NGINX شما کاملاً مسدود میشه.
✅ چطور مطمئن بشیم XML-RPC بسته شده؟
خیلی راحت! کافیه توی مرورگر آدرس زیر رو باز کنید:
filmamooz.com/xmlrpc.php
اگر با خطای 403 یا 404 روبهرو شدید، یعنی دسترسی به این فایل بسته شده. حالا همین تست رو با دامنه خودتون انجام بدید. اگر نتیجه مشابه بود، یعنی تنظیمات رو درست انجام دادید و XML-RPC روی سایت شما هم غیرفعال شده.
موفق و سربلند باشید .