learn

امنیت XML-RPC وردپرس؛ محدودسازی درخواست‌ها بدون قطع سرویس لازم

راهنمای تصمیم‌گیری دربارهٔ xmlrpc.php؛ فیلتر xmlrpc_enabled همهٔ روش‌ها از جمله pingback را مسدود نمی‌کند.

امنیت XML-RPC وردپرس به استفادهٔ واقعی سایت از این رابط و نحوهٔ کنترل درخواست‌ها بستگی دارد. xmlrpc.php برای برخی ارتباط‌های راه دور به کار می‌رود. وجود فایل به‌تنهایی اثبات نفوذ نیست و مسدودکردن آن نیز همهٔ تهدیدهای وردپرس را برطرف نمی‌کند.

پیش از تغییر امنیت XML-RPC وردپرس

فهرست اتصال‌های فعال را مشخص کنید. Jetpack برای ارتباط با WordPress.com به این مسیر وابسته است؛ بستن کامل آن می‌تواند قابلیت‌های مورد استفاده را مختل کند. وابستگی برنامه‌های دیگر را از مستند همان نسخه بررسی کنید و به فهرست نرم‌افزارهای قدیمی تکیه نکنید.

لاگ چه چیزی را روشن می‌کند؟

تعداد درخواست‌ها، زمان، IP مبدأ و نتیجهٔ پاسخ را کنار مصرف منابع بررسی کنید. درخواست POST به xmlrpc.php الزاماً حمله نیست. الگوی غیرعادی می‌تواند نیاز به محدودسازی داشته باشد، اما از وجود یک درخواست یا رمز ضعیف نمی‌توان نتیجه گرفت که نفوذ قطعاً رخ داده است.

محدودیت فیلتر xmlrpc_enabled

کد زیر تنها روش‌های XML-RPC نیازمند احراز هویت را غیرفعال می‌کند:

add_filter( 'xmlrpc_enabled', '__return_false' );

طبق مستند وردپرس، این فیلتر pingback و سایر روش‌های بدون احراز هویت را کامل نمی‌بندد. بنابراین نباید آن را «غیرفعال‌سازی کامل فایل» معرفی کرد. کد رفتاری سایت را در محل مدیریت‌شده مانند افزونهٔ اختصاصی نگه دارید؛ ویرایش مستقیم قالب با تعویض قالب از بین می‌رود.

وقتی هیچ وابستگی مجازی وجود ندارد

مدیر سرور می‌تواند درخواست این فایل را در وب‌سرور یا WAF مسدود کند. برای Apache 2.4، در محیطی که دستور در .htaccess مجاز است، نمونهٔ مسدودسازی کامل چنین است:

<Files "xmlrpc.php">
    Require all denied
</Files>

این نمونه برای Nginx قابل استفاده نیست و باید با تنظیم واقعی میزبان تطبیق داده شود. فایل هستهٔ xmlrpc.php را حذف نکنید. قواعد قدیمی Order و Deny را بدون شناخت سازگاری سرور با دستورهای جدید مخلوط نکنید.

اگر اتصال بیرونی لازم است

به‌جای بستن همهٔ درخواست‌ها، محدودیت نرخ، قواعد هدفمند و مسیرهای مجاز همان سرویس را بررسی کنید. پشت پروکسی، تشخیص IP واقعی باید درست باشد تا کاربران سالم به‌جای مبدأ مسئله‌دار مسدود نشوند. افزونهٔ امنیتی یا محدودیت IP تضمین نمی‌کند هر حملهٔ توزیع‌شده بی‌اثر شود.

پس از تغییر، اتصال لازم، انتشار راه دور و پاسخ مسیر را آزموده و لاگ را بررسی کنید. به‌روزرسانی وردپرس، رمزهای یکتا و کنترل حساب‌ها همچنان لازم‌اند. منابع: دامنهٔ اثر فیلتر وردپرس، وابستگی Jetpack و کنترل دسترسی Apache.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

ارسال نظر

فهرست مطالب