چگونه وردپرس را در مقابل حملات XML-RPC محافظت کنیم
از حملات شایع در وردپرس، حملات XML-RPC هستند. xmlrpc.php فایلی هست که در پوشه اصلی سایتهای وردپرسی قرار دارد و میتوانیم با جلوگیری از دسترسی به XML-RPC سایت خود را تا حد زیادی امنتر کنیم.
وردپرس بهترین سیستم مدیریت محتوای دنیاست. در این قضیه شکی نیست. اما وقتی صحبت از امنیت میشود بسیاری از دوستان ظاهراً متخصص، قصد دارند برای فروش سیستمهای مدیریت محتوای اختصاصی خودشان وردپرس را غیر امن توصیف کنند. اما همانطور که در دوره آموزش امنیت وردپرس توضیح دادم، امنیت امری نسبی هست و کاملاً بستگی به شرایط و تنظیماتهاست و سرور شما دارد.
مثلاً اگر روزی یک نفری وارد دیتاسنتر شد و هارد سرور شمارا دزدید این قضیه دیگر مربوط به امنیت وردپرس نیست! بلکه امنیت دیتاسنتر شما هست که باید بازبینی شود.
XML-RPC چیست
از همه اینها که بگذریم. وردپرس یک پروتکل دسترسی به نام xml-rpc دارد که معمولا برای دسترسی به توابع سایت شما استفاده میشود. یعنی سایتهای دیگر میتوانند با این سرویس، شروع به اجرای توابع قالبها و افزونههای سایت شما شوند.
بسیاری از ما از این پروتکل استفاده نمیکنیم. پس برای جلوگیری از حملات احتمالی بهتر است این بخش را مسدود کنیم. در کل زمانی که یک هکر قصد هک کردن سایت شما با استفاده از XML-RPC را دارد، از دو روش عمل میکند:
- خواندن اطلاعات دقیق خطا زمانی که سایت شما خطای دیتابیس دارد.
- خواندن اطلاعات زیادی از جمله 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 مسدود هست
خیلی راحت! کافیست آدرس ۲۰script.ir/xmlrpc.php را در مرورگر خود باز کنید. اگر خطای ۴۰۳ یا ۴۰۴ دریافت کردید یعنی xmlrpc.php روی سایت ما مسدود هست. حالا همین کار را با وارد کردن دامنه خود به جای ۲۰script.ir تست کنید. اگر روی سایت شما هم مسدود بود پس کار درست را انجام دادهاید. 🙂
موفق و پیروز باشید.
نوشته چگونه وردپرس را در مقابل حملات XML-RPC محافظت کنیم اولین بار در بیست اسکریپت. پدیدار شد.