غیر فعال کردن XML-RPC وردپرس با htaccess

یکی از روش‌های مرسوم برای هک کردن یک سایت Brute force است. یعنی به تعداد زیاد از طریق درگاه‌هایی که امکان ورود اطلاعات تعیین هویت وجود دارند، هکر ترکیب‌های مختلفی از نام کاربری و رمز عبور یا چیزهای دیگری را توسط نرم افزار تست می‌کند تا بالاخره یکی از آنها جواب دهد. این کار علاوه بر اینکه باعث هک شدن سایت می‌شود، از آن بدتر باعث کاهش سرعت سایت هم خواهد شد. یکی از درگاه‌های سایت وردپرس که امکان بروز یک چنین حمله‌ای را تشدید می‌کند، همین XML-RPC است.

غیر فعال کردن XML-RPC وردپرس با htaccess

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

برای غیر فعال کردن XML-RPC وردپرس ممکن است راه‌های مختلفی وجود داشته باشد. که یکی از این راه‌ها استفاده از سند htaccess روی هاست ماست. که این پرونده برای ویرایش رفتار وب سرور در مواجه با درخواست‌های مختلف استفاده می‌گردد. یکی از کارهایی که می‌توان با htaccess انجام داد، این است که درون آن کدی را بگذاریم که به آپاچی یا همان وب‌سرور بفهمانیم که درخواست‌هایی که به سند xmlrpc.php وردپرس داده می‌شوند را همگی رد کن!

یک آموزش جذاب دیگه!  چطور جلوی حمله به XML-RPC وردپرس را بگیریم؟

غیر فعال کردن XML-RPC وردپرس با htaccess

برای این منظور باید وارد نرم افزار کنترل پنل هاست و از آنجا وارد File Manager شد که از آنجا می‌توانیم تمامی اسناد روی فضای میزبانی را مدیریت کنیم. سندی با نام htaccess. که در مسیر public_html (دقیقاً در همین پوشه از مسیر نصبی وردپرس موجود است) را باز می‌کنیم و کد زیر را در انتهای این سند قرار دهیم.

# Block WordPress xmlrpc.php requests 
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

دقت داشته باشید که این سند خیلی حساس است! اگر یک حرف اشتباه وارد کنید، ممکن است کل سایت از دسترس برای بازدید کنندگان خارج شود. پس بهتر است اول از آن یک نسخهٔ پشتیبان با یک نام دیگر در همین مسیر تهیه کنید، یا از آن یک نسخه روی رایانهٔ شخصی خود دانلود کنید. پس از ویرایش هم سایت را بررسی کنید که ببینید آیا سایت به درستی کار می‌کند یا خیر.

غیرفعال کردن XML-RPC وردپرس برای همه به غیر از افراد خاص

اما اگر خواسته باشیم، تنها برای عده‌ای که آنها هم IP ثابت دارند، یعنی با هر بار خاموش و روشن کردن رایانه یا مودم، نشانی اینترنتی آنها تغییر نمی‌کند، دسترسی به XML-RPC را آزاد بگذاریم و برای بقیهٔ افراد روی شبکهٔ اینترنت دسترسی را مسدود کنیم، می‌توان از کد زیر به جای کد بالا استفاده کرد:

# Block WordPress xmlrpc.php requests 
<Files xmlrpc.php>
order deny,allow
deny from all
allow from [IP]
</Files>

البته باید به جای [IP] حتماً IP فرد یا رایانه‌ای که قصد اجازه دسترسی به XML-RPC را دارد وارد کنیم. به عنوان مثال اگر از درون شرکت یا منزل خود می‌خواهید از طریق Windows Live Writer که از همین نوع API وردپرس برای ارسال نوشته به سایت استفاده می‌کند، ارسال محتوا داشته باشید، ‌اول که باید آی پی شما ثابت باشد. در ثانی از کدی که در این قسمت از مقاله از آن یاد شد در سند htaccess خود استفاده نمایید.

یک آموزش جذاب دیگه!  جلوگیری از حملات Brute Force وردپرس با Protection Against DDoS

نکته ۱ : دقت کنید که سند xmlrpc.php در ریشهٔ محلی که وردپرس نصب شده است واقع شده و در اصل همان نشانی اصلی پروتکل xml-rpc سایت است. یعنی این نشانی روی سایت شما به این صورت است: yoursite.ir/xmlrpc.php

نکته ۲ : ما در اصل دسترسی به این سند توسط کدهای آپاچی که درون سند htaccess یادداشت می‌شود، را محدود می‌کنیم. که بعد از استفاده از یکی از کدهای بالا، خطای ۴۰۳ به بازدید کننده‌ها برگردانده خواهد شد.

نکته ۳ : بعد از استفاده از کدهای بالا، حتماً نشانی xmlrpc سایت را بررسی کنید که آیا خطای ۴۰۳ داده می‌شود یا خیر. یعنی کدی که گذاشتید به درستی کار می‌کند یا خیر. اگر کار نکرد و سایت هنوز از دسترس خارج نشده، موقعیتی که کد را در آنجا قرار دادید اشتباه است. آن را در سند htaccess بالا یا پایین کنید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش جامع وردپرس

آموزش نصب وردپرس روی لوکال هاست

آموزش افزونه Yoast SEO

درباره ®WPTutorial

WPTutorial یکی از منابع آموزشی جامع و رایگان وردپرس می باشد، که هدف اصلی خودش را به اشتراک گذاری تجربه های وردپرسی و افزایش دانش وبمسترهای فارسی زبان قرار داده است. بر همین اساس هر روزه سعی در انتشار آموزش ها، ترفندها و هک های وردپرس می کند، تا شما بتوانید سایت تان را هر روز بهبود ببخشید.