چگونه وردپرس را در مقابل حملات XML-RPC محافظت کنیم

چگونه وردپرس را در مقابل حملات XML-RPC محافظت کنیم

از حملات شایع در وردپرس، حملات XML-RPC هستند. xmlrpc.php فایلی است که در پوشه اصلی سایت‌های وردپرسی قرار دارد و می‌توانیم با جلوگیری از دسترسی به XML-RPC سایت خود را تا حد زیادی امن‌تر کنیم.

وردپرس بهترین سیستم مدیریت محتوای دنیاست. در این قضیه شکی نیست. اما وقتی صحبت از امنیت می‌شود بسیاری از دوستان ظاهراً متخصص، قصد دارند برای فروش سیستم‌های مدیریت محتوای اختصاصی خودشان وردپرس را غیر امن توصیف کنند. اما همان‌طور که در دوره آموزش امنیت وردپرس توضیح دادم، امنیت امری نسبی است و کاملاً بستگی به شرایط و تنظیمات‌هاست و سرور شما دارد.

مثلاً اگر روزی یک نفری وارد دیتاسنتر شد و هارد سرور شمارا دزدید این قضیه دیگر مربوط به امنیت وردپرس نیست! بلکه امنیت دیتاسنتر شما است که باید بازبینی شود.

XML-RPC چیست

از همه این‌ها که بگذریم. وردپرس یک پروتکل دسترسی به نام xml-rpc دارد که معمولا برای دسترسی به توابع سایت شما استفاده می‌شود. یعنی سایت‌های دیگر می‌توانند با این سرویس، شروع به اجرای توابع قالب‌ها و افزونه‌های سایت شما شوند.

فایل xmlrpc.php
فایل xmlrpc.php

بسیاری از ما از این پروتکل استفاده نمی‌کنیم. پس برای جلوگیری از حملات احتمالی بهتر است این بخش را مسدود کنیم. در کل زمانی که یک هکر قصد هک کردن سایت شما با استفاده از XML-RPC را دارد، از دو روش عمل می‌کند:

  1. خواندن اطلاعات دقیق خطا زمانی که سایت شما خطای دیتابیس دارد.
  2. خواندن اطلاعات زیادی از جمله POST /xmlrpc.php HTTP/1.0 در لاگ وب سرور شما

جلوگیری از دسترسی به XML-RPC

قبلا غیرفعال کردن xml-rpc با افزونه را توضیح داده‌ایم. اما می‌خواهیم افزونه‌های زیادی روی سایت‌مان نصب نکنیم. پس به سراغ فایل htaccess می‌رویم. برای غیر فعال کردن XML RPC در وردپرس کافیست وارد فایل منیجر هاست خود شوید. سپس فایل .htaccess را ویرایش کنید. این فایل در مسیر اصلی public_html سایت شما قرار دارد.

بعد از باز کردن این فایل. در خط اول این کد را قرار دهید:

<files xmlrpc.php>
   order allow,deny
   deny from all
</files>

به همین راحتی! دسترسی به فایل xmlrpc.php مسدود شد و حالا هکر گرامی دسترسی به این فایل نخواهد داشت.

اگر از NGINX استفاده می‌کنید

بسیاری از شما از وب سرور NGINX استفاده می‌کنید. اگر اینطور است به شما تبریک می‌گوییم چون حتما یک سرور اختصاصی یا نیمه اختصاصی برای سایت خود دارید. اگر از NGINX استفاده می‌کنید، باید در فایل /etc/nginx/nginx.conf این کدها را در بخش server{} قرار دهید.

location = /ahura/xmlrpc.php {
   deny all;
   access_log off;
   log_not_found off;
   return 403;
}

به همین راحتی! دسترسی به فایل xmlrpc.php روی سرور انجین ایکس شما مسدود شد.

چگونه مطمئن شویم xmlrpc.php مسدود است

خیلی راحت! کافیست آدرس mihanwp.com/xmlrpc.php را در مرورگر خود باز کنید. اگر خطای ۴۰۳ یا ۴۰۴ دریافت کردید یعنی xmlrpc.php روی سایت ما مسدود است. حالا همین کار را با وارد کردن دامنه خود به جای mihanwp.com تست کنید. اگر روی سایت شما هم مسدود بود پس کار درست را انجام داده‌اید. 🙂

موفق و پیروز باشید.

نظر شما در این مورد چیه؟

⚠️ دسترسی محدود

به دلیل مشکلات اینترنت موجود در ایران، در حال حاضر شما به سرور آلمان میهن وردپرس متصل هستید.
برای دسترسی به بخش‌های داینامیک سایت نیاز است با ای پی ایران وارد شوید تا به سرور ایران متصل شوید.
لطفا در صورتی که با VPN وارد شده‌اید. وی پی ان خود را خاموش کنید و با ای پی ایران سایت را باز کنید. سپاس از همراهی شما و به امید روزهای بهتر برای میهن عزیزمان.