فایل Xmlrpc.php وردپرس و نقش آن

آیا می دانید فایل Xmlrpc.php
چیست؟ چرا فایل Xmlrpc.php
ایجاد شده است و چگونه از آن استفاده می شود؟ چرا باید Xmlrpc.php
را غیرفعال کنید؟ روش های غیرفعال کردن Xmlrpc.php
چیست؟ چگونه XML-RPC را بصورت دستی یا با استفاده از افزونه غیرفعال کنیم؟ مزایا و معایب غیرفعال کردن Xmlrpc.php
چیست؟ در این مقاله به این سئوالات پاسخ داده می شود و روش های غیر فعال کردن Xmlrpc.php
بحث می شود.
فایل Xmlrpc.php
وردپرس چیست و چرا باید آن را غیر فعال کرد
وردپرس دارای ویژگی ها و کارکردهای سر خود زیادی است که به ما اجازه می دهد از دور (ریموت) با سایت خود در تعامل باشیم. گاهی اوقات لازم است که به وبسایت خود دسترسی داشته باشیم و کامپیوتر در دسترس نداریم. بنابراین ممکن است از گوشی یا تبلت و یا حتی کروم بوک استفاده کنیم.
از قدیم راه حل این مسئله فایلی به نام Xmlrpc.php
بود. فایل Xmlrpc.php
به ما امکان دسترسی ریموت به ادمین وبسایت وردپرس را می دهد. اما در سالیان اخیر این فایل بیشتر به یک مزاحم تبدیل شده است یا تا یک راه حل.
در ادامه عملکرد فایل در وبسایت وردپرس را بحث کرده و علت ایجاد آن را شرح می دهیم. همچنین مشکلات امنیتی رایج این فایل را بحث کرده، علت و چگونگی رفع این مشکلات در وبسایت وردپرس را معرفی می کنیم.
در این مقاله می خوانیم:
- فایل
Xmlrpc.php
چیست؟ - چرا فایل
Xmlrpc.php
ایجاد شده است و چگونه از آن استفاده می شود؟ - چرا باید
Xmlrpc.php
را غیرفعال کنید - روش 1 – غیرفعال کردن
Xmlrpc.php
با استفاده از افزونه - روش 2- غیر فعال کردن دستی
Xmlrpc.php
فایل Xmlrpc.php
چیست؟
یکی از ویژگی های وردپرس فایل Xmlrpc.php
است که امکان انتقال داده را فراهم می سازد که در آن HTTP مکانیسم انتقال داده بوده و XML مکانیسم رمزگذاری داده است. از آنجایی که وردپرس یک سیستم خود محور نیست و گاهی اوقات به برقراری ارتباط با سیستم های دیگر نیاز دارد، این فایل و اسکریپت به عنوان راه حل انجام این وظیفه ایجاد شد.
برای مثال، تصور کنید می خواهید مقاله ای را در سایت خود منتشر کنید و از آنجایی که کامپیوتر در دسترس ندارید می خواهید از گوشی موبایل خود استفاده کنید. بنابراین می توانید از امکانات دسترسی ریموت فراهم شده در فایل Xmlrpc.php
استفاده کنید و پست خود را منتشر کنید.
خصیصه های اصلی که فایل Xmlrpc.php
فعال می کند شامل اجازه دادن به اتصال به سایت از طریق گوشی هوشمند، اجرای trackbacks و pingbacks از سایت های دیگر، کارکردهای مرتبط با پلاگین Jetpack است.
چرا فایل Xmlrpc.php
ایجاد شده است و چگونه از آن استفاده می شود؟
اجرای فایل Xmlrpc.php
به روزهای ابتدای معرفی وردپرس بر می گردد، قبل از اینکه به وردپرس امروزی تبدیل شود.
در روزهای اول اینترنت، وقتی ارتباطات اینترنتی فوق العاده کند و ضعیف بود، فرآیند نوشتن و انتشار مطلب در وب خیلی سخت و زمانبر بود. بنابراین بجای نوشتن مطلب در داخل مرورگر، بیشتر وبمسترها مطلب خود را آفلاین می نوشتند و سپس محتوا را در وبسایت خود کپی می کردند. اما هنوز این پروسه خیلی از ایده آل امروزی دور بود.
راه حال (در آن زمان) ایجاد یک مددجوی وبلاگ نویسی آفلاین بود که در آن می توانستید مطلب و پست خود را نوشته، سپس بلاگ خود را وصل و آنلاین کرده و مطلب را منتشر کرد. این اتصال و آنلاین شدن از طریق Xmlrpc.php
انجام می شد. وجود چارچوب Xmlrpc.php
به اپلیکیشن های قدیم امکان اتصال همزمان به افرادی که در وبسایت وردپرس خود از وسایل مختلف لاگین کرده بودند، را می داد.
Xmlrpc.php
امروزی
سال 2008 و با معرفی وردپرس 2.6 گزینه های جدیدی گذاشته شد که بتوان Xmlrpc.php
را غیر فعال کرد. هرچند با معرفی نسخه آیفون اپلیکیشن وردپرس، پشتیبانی Xmlrpc.php
بطور پیش فرض فعال شده و گزینه غیرفعال کردن آن از داشبورد وردپرس حذف شد. این مسئله تا به امروز ادامه دارد.
آینده Xmlrpc.php
با معرفی API جدید وردپرس، می توان انتظار داشت که Xmlrpc.php
بطور کامل حذف شود. امروزه این API جدید هنوز در مراحل آزمایشی است و می توان آن را فقط از طریق بکارگیری پلاگین فعال کرد.
هرچند می توان انتظار داشت که درآینده API مستقیم در هسته وردپرس کپی شود و نیاز به Xmlrpc.php
بطور کلی برطرف شده و این فایل از سیستم مدیریت محتوای وردپرس حذف شود.
این API جدید عالی نیست، اما راه حل قوی تر و ایمن تری برای مشکلاتی فراهم ساخته است که توسط Xmlrpc.php
برطرف می شد.
چرا باید Xmlrpc.php
را غیرفعال کنید
بزرگترین مشکل Xmlrpc.php
ریسک امنیتی است که برای وبسایت به همراه دارد. البته مشکل مستقیما به Xmlrpc.php
ربط ندارد بلکه طریقه استفاده از این فایل است که موجب می شود نیروهای مزاحم و مهاجم بتوانند به وبسایت شما حمله کنند.
البته می توان با استفاده از رمزعبور فوق العاده طولانی و قوی یا پلاگین های امنیت وردپرس از سایت خود محافظت کرد. اما بهترین راه محافظت از وبسایت خود همان غیر فعال کرده این فایل است.
فایل Xmlrpc.php
دارای دو ضعف اصلی است که در گذشته مورد سوء استفاده قرار گرفته است.
اولی استفاده از حملات نیروهای مزاحم و هکرها برای ورود به سایت شما است. یک حمله کننده که می خواهد به سایت شما دسترسی پیدا کند از Xmlrpc.php
با استفاده از ترکیب های نام کاربری و رمز عبور متفاوت بهره می گیرد. یک برنامه نویس یا هکر براحتی می تواند با یک فرمان صدها پسورد مختلف را تست کند. این به آنها امکان رد شدن از ابزارهای امنیتی که عموما حملات ناخواسته به سایت را شناسایی و بلوک می کنند، می دهد.
شیوه دوم آفلاین کردن سایت از طریق حملات DDoS است. هکرها از ویژگی pingback وردپرس استفاده کرده و pingback را همزمان به هزاران سایت ارسال می کنند. این ویژگی Xmlrpc.php
برای هکرها مخزن بی پایانی از آدرس های IP را فراهم می سازد تا حملات DDoS خود را از طریق آنها توزیع کنند.
برای چک فعال بودن Xmlrpc.php
در سایت خود می توانید از ابزارهای اعتبارسنجی (XML-RPC Validator) استفاده کنید. سایت خود را از داخل این ابزارها باز نموده و اگر پیغام خطا دریافت کنید، بدین معنی است که Xmlrpc.php
وبسایت شما فعال نیست.
اگر پیام موفقیت عملیات دریافت کردید بدین معنی است که Xmlrpc.php
سایت شما فعال است و می توانید آن را غیر فعال کنید. برای غیرفعال کردن Xmlrpc.php
می توانید از افزونه های آماده وردپرس استفاده کنید و یا دستی آن را غیر فعال کنید.
روش 1 – غیرفعال کردن Xmlrpc.php
با استفاده از افزونه
غیرفعال کردن Xmlrpc.php
در وبسایت خود یک کار ساده است. به سادگی می توانید افزونه های وردپرس را جستجو کرده و افزونه را نصب کنید و سپس با یک کلیک Xmlrpc.php
را غیرفعال کنید. همانند تصویر زیر:

همینکه افزونه را نصب کرده و فعال کنید، بطور خودکار کد لازم برای غیرفعال شدن Xmlrpc.php
را در وردپرس اعمال می کند.
هرچند بایستی بخاطر داشته باشید که بعضی از پلاگین های موجود ممکن است تا حدودی از Xmlrpc.php
استفاده کنند، بنابراین غیرفعال کردن آن بطور کامل ممکن است باعث تضاد بین اجزای خاصی از افزونه های سایت شما گردد و این افزونه ها از کار بیافتند.
اگر می خواهید عناصر خاصی از عملکرد Xmlrpc.php
را غیر فعال کنید، می توانید افزونه های خاص را نصب و بجای غیرفعال سازی کامل Xmlrpc.php
بعضی از خصیصه ها و اجزای آن را غیرفعال کنید. نمونه این افزونه ها عبارتست از:
- متوقف کردن حمله
Xmlrpc.php
: افزونه Stop XML-RPC Attack موجب توقف تمامی حملات بهXmlrpc.php
می شود اما پلاگین هنوز کار می کند و افزونه هایی مثل جت پک (Jetpack) و ابزارهای و افزونه های خودکار دیگر به فایلXmlrpc.php
دسترسی خواهند داشت. - کنترل انتشار Xml-RPC: افزونه Control XML-RPC Publishing کنترل های خاصی از
Xmlrpc.php
را حفظ کرده و از گزینه های انتشار ریموت ارائه شده توسطXmlrpc.php
استفاده و آنرا کنترل می کند.
روش 2- غیر فعال کردن دستی Xmlrpc.php
اگر نمی خواهید از افزونه های آماده وردپرس استفاده کنید و ترجیح می دهید که دستی Xmlrpc.php
را غیرفعال کنید، پس بایستی از این رویکرد استفاده کنید. این روش تمامی درخواست های XML-RPC ورودی را قبل از رسیدن به وبسایت وردپرس شما متوقف می کند.
برای اینکار فایل .htaccess وبسایت خود را باز کنید. ممکن است فایل مخفی باشد و بایستی از مدیر فایل هاستینگ خود یا مددجوی ftp برای یافتن فایل استفاده کنید.
کد زیر را در داخل فایل .htaccess سایت خود تایپ کنید:
# Block WordPress Xmlrpc.php requests order deny,allow deny from all allow from xxx.xxx.xxx.xxx
توجه: بایستی بجای xxx.xxx.xxx.xxx آدرس IP مورد نظر خود که می خواهید به Xmlrpc.php
دسترسی داشته باشد را تایپ کنید یا کلا این خط را حذف کنید.
خلاصه بحث
در مجموع Xmlrpc.php
راه حل مطلوبی برای مشکلاتی بود که بخاطر انتشار ریموت در سایت وردپرس در گذشته وجود داشت. هرچند این خصیصه یک چاله امنیتی برای حمله به سایت و سوء استفاده از سایت وردپرس است.
برای اطمینان از اینکه سایت شما ایمن بماند بهتر است Xmlrpc.php
را بطور کلی غیرفعال کنید. مگر بعضی از کارکردهای آن را برای اقدامات ریموت نیاز داشته باشید. بنابراین بایستی از افزونه ای استفاده کنید که امکان غیرفعال کردن سفارشی بعضی از خصیصه های این برنامه را فراهم سازد.
با گذر زمان خصیصه های مورد انتظار XML-RPC در یک API جدید وردپرس تلفیق کرده اند و دسترسی ریموت به سایت وردپرس امکانپذیر است، بدون اینکه امنیت سایت فدا شود. اما هنوز این برنامه در مرحله آزمایشی است. شما بایستی خودتان از امنیت سایت و غیرفعال کردن چاله های امنیتی XML-RPC اطمینان حاصل کنید.
اگر در اجرای این راهنما به مشکل برخورد کردید و سایر سئوالات و پیشنهادات خود را در بخش سئوالات عمومی انجمن پلکسا مطرح نمایید. گروه توسعه وب پلکسا به سئوالات شما پاسخ خواهند داد.