چگونه وردپرس را در مقابل حملات 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 مسدود است
خیلی راحت! کافیست آدرس mihanwp.com/xmlrpc.php را در مرورگر خود باز کنید. اگر خطای ۴۰۳ یا ۴۰۴ دریافت کردید یعنی xmlrpc.php روی سایت ما مسدود است. حالا همین کار را با وارد کردن دامنه خود به جای mihanwp.com تست کنید. اگر روی سایت شما هم مسدود بود پس کار درست را انجام دادهاید. 🙂
موفق و پیروز باشید.
سلام امیدوارم حالتون عالی باشه
من زمانی که باد گوشی ادرس سایتم رو میزنم صفحه اصلی سایتم خطای 404 میده و داخل خطاهای بحرانی سایتم متن
برخی از پروندهها توسط وردپرس قابل نوشتن نیستند:
xmlrpc.php
وجود دارد این مشکل رو چطور میتونم حل کنم؟
سلام به جناب اقای راد عزیز و تیم زحمت کششون
من مشکلی که دارم اینه اون خط رو وارد سی پنل میکنم ولی صفحه های سایتم به ارور 404 میخوره نمیدونم باید چیکار کنم اموزش تونم دیدم پیوند یکتا رو ذخیره تغییرات زدم ولی ارور 404 هیج تغییری نکرد
ممنون میسم یخورده راهنماییم کنید
سلام به جناب اقای راد عزیز و تیم زحمت کششون
من مشکلی که دارم اینه اون خط رو وارد سی پنل میکنم ولی صفحه های سایتم به ارور 404 میخوره نمیدونم باید چیکار کنم اموزش تونم دیدم پیوند یکتا رو ذخیره تغییرات زدم ولی ارور 404 هیج تغییری نکرد ممنون میسم یخورده راهنماییم کنید
سلام روزتون بخیر
من اخیرا متوجه شدم در قسمت پیشخوان وردپرسم قسمت مانیتور 404 به طرز عجیبی و بسیار زیاد تعداد url ها و تعداد گزارشات داره میره بالا وقتی روی ایکون نمودار بالای url ها کلیک کردم متوجه شدم %90 تمامیه این url ها از xmlrpc.php هست و از طریق این اموزش شما کد رو اضاف کردم اما همچنان ادامه داشت و حتی من xmlrpc.php رو در وردپرس غیر فعال کردم با یک اموزش دیگتون اما همچنان تعداد url ها از xmlrpc.php داره افزایش پیدا میکنه نمیدونم چیکار کنم ممنون میشم راهنماییم کنید
سلام طبیعیه. میتونید این آدرس رو ریدایرکت کنید. آموزش خطای ۴۰۴ رو توی سایت ببینید.
سلام وقت بخیر
من هم کد شما رو تست کردم و هم در افزونه امنیت کامل وردپرس، بخش xmlrpc را غیرفعال کردم ولی هیچ تاثیری نداشت و این بخش اصلا مسدود نشده!
به نظرتون مشکل از کجاست؟
ممنون
سلام
وب سرور شماnginx هست یا آپاچی؟
سلام
آپاچی هستش…
مطمئن بشید کدها رو توی htaccess صحیح وارد کردید. اگر مطمئن هستید از مدیر سرور یا هاستینگ بخواید بررسی کنن
سلام و تشکر, ما روی سایت بررسی کردیم عبارت XML-RPC server accepts POST requests only نمایش داده می شود.
آیا لازم است طبق راهنمایی شما عمل کنیم یا نیازی نیست کاری انجام شود؟
جهت اطلاع افزونه وردفنس نصب شده است, آیا کافی می باشد؟
سلام
بله باید انجام بدید