در وردپرس، فایل xmlrpc.php مسئول ایجاد ارتباط بین سایت و سرویس ها یا اپلیکیشن های خارجی است. این ارتباط با استفاده از پروتکل HTTP و قالب XML برقرار می شود و امکان دسترسی به سایت از راه دور را فراهم می سازد. اگر تا به حال از اپلیکیشن وردپرس موبایل برای انتشار پست استفاده کرده باشید یا قابلیت هایی مانند Pingback و Trackback را تجربه کرده اید، احتمالاً فایل XML-RPC در پشت صحنه فعال بوده است.
چرا XML-RPC ایجاد شد؟
در سال های ابتدایی وردپرس، زمانی که کاربران با سرعت پایین اینترنت دست وپنجه نرم می کردند، نوشتن مستقیم در مرورگر بسیار دشوار بود. XML-RPC به کاربران این امکان را می داد که مطالب خود را از طریق برنامه های دیگر (مثلاً نرم افزارهای موبایلی یا دسکتاپ) نوشته و به راحتی در وب سایت خود منتشر کنند. این فایل همچنان برای برخی افزونه ها مانند Jetpack و سرویس های شخص ثالث کاربرد دارد.
آیا XML-RPC برای امنیت سایت خطرناک است؟
هرچند XML-RPC به خودی خود خطرناک نیست، اما راهی برای سوءاستفاده توسط مهاجمان فراهم می کند. این دو تهدید امنیتی بیشتر مورد توجه قرار گرفته اند:
حملات Brute Force
مهاجم می تواند از طریق فایل xmlrpc.php با ارسال درخواست های متعدد تلاش کند نام کاربری و رمز عبور شما را حدس بزند، آن هم بدون شناسایی توسط برخی سیستم های امنیتی.
حمله DDoS از طریق Pingback
در این نوع حمله، هکرها از قابلیت Pingback برای ارسال درخواست های انبوه به سایر سایت ها استفاده می کنند، که می تواند منجر به کاهش سرعت یا حتی از کار افتادن سرور شود.
چگونه XML-RPC را در وردپرس غیرفعال کنیم؟
ساده ترین راه برای غیرفعالسازی XML-RPC استفاده از افزونه هایی مانند Disable XML-RPC است. تنها کافی است:
وارد پنل مدیریت وردپرس شوید. از منوی افزونه ها، گزینه «افزودن» را بزنید. نام افزونه را جست وجو و آن را نصب و فعال کنید. نیازی به تنظیمات خاصی نیست؛ افزونه پس از فعال سازی، به طور خودکار دسترسی به فایل xmlrpc.php را مسدود می کند.
افزودن کد به فایل functions.php
برای غیرفعال کردن XML-RPC از طریق کدنویسی، کافی است قطعه کد زیر را به فایل functions.php قالب وردپرس خود اضافه کنید:
نکته: حتماً قبل از انجام این کار از سایت خود نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل، امکان بازیابی داشته باشید.
جلوگیری از دسترسی از طریق فایل htaccess.
اگر قصد دارید دسترسی به فایل xmlrpc.php را به طور کامل از طریق وب مسدود کنید، می توانید از کد زیر در فایل .htaccess استفاده نمایید:
در این کد، آی پی وارد شده تنها آی پی مجاز برای دسترسی به فایل xmlrpc.php خواهد بود. می توانید آن را با آی پی خود جایگزین کنید یا اگر نیاز به دسترسی ندارید، بخش allow from را حذف نمایید.
دسترسی به فایل htaccess در هاست
- در Cpanel: از File Manager وارد مسیر public_html شوید، گزینه "Show Hidden Files" را فعال کرده و فایل .htaccess را ویرایش نمایید.
- در DirectAdmin: از طریق File Manager وارد مسیر public_html شده و فایل را ویرایش یا در صورت نبود، ایجاد نمایید.
در نهایت
XML-RPC قابلیتی مفید اما بالقوه خطرناک در وردپرس است که می تواند زمینه ساز حملات امنیتی شود. اگر از قابلیت های آن استفاده نمی کنید، توصیه می شود به یکی از روش های بالا آن را غیرفعال کرده و امنیت سایت خود را ارتقا دهید.