یک راهنمای کامل در xmlrpc.php در وردپرس (این چیست ، خطرات امنیتی ، نحوه غیرفعال کردن آن)

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

این مشخصات از زمان آغاز کار بخشی از WordPress بوده است و کار بسیار مفیدی انجام داده است. بدون آن ، وردپرس در سیلوی خودش بود و از سایر اینترنت جدا شده بود.

با این حال ، xmlrpc.php نکات منفی دارد. این می تواند آسیب پذیری ها را به سایت WordPress شما معرفی کند و اکنون با WordPress REST API ، که باز کردن وردپرس برای سایر برنامه ها بسیار بهتر عمل می کند.

در این پست ، ما توضیح خواهیم داد که xmlrpc.php چیست ، چرا باید آن را غیرفعال کنید و به شما کمک می کنیم که آیا در سایت وردپرس شما کار می کند.

آماده هستید؟ بیایید غواصی کنیم!

xmlrpc.php چیست؟ h2>

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

XML-RPC قبل از وردپرس است: این نرم افزار در نرم افزار وبلاگ نویسی b2 وجود داشت که برای ایجاد WordPress در سال 2003 ارسال شده بود. کد پشت سیستم در پرونده ای به نام xmlrpc.php ذخیره می شود ، در فهرست ریشه سایت. و هنوز هم وجود دارد ، حتی اگر XML-RPC عمدتاً قدیمی است.

در نسخه های اولیه وردپرس ، XML-RPC به طور پیش فرض خاموش شد. اما از نسخه 3.5 به طور پیش فرض فعال شده است. دلیل اصلی این امر اجازه دادن به برنامه تلفن همراه وردپرس برای مکالمه با نصب وردپرس شما بود .

اگر قبل از نسخه 3.5 از برنامه موبایل وردپرس استفاده کرده اید ، ممکن است لازم باشد XML-RPC را در سایت خود فعال کنید تا برنامه بتواند محتوای خود را ارسال کند. این به این دلیل بود که برنامه خود وردپرس را اجرا نمی کرد. در عوض ، این یک برنامه جداگانه بود که با استفاده از xmlrpc.php با سایت وردپرس شما ارتباط برقرار می کرد.

اما این فقط برنامه تلفن همراه نبود که از XML-RPC برای آن استفاده می شد: همچنین برای امکان برقراری ارتباط بین وردپرس و سایر سیستم عامل های وبلاگ نویسی مورد استفاده قرار گرفت ، این پیگیریها و پینگ بک ، و آن با افزونه Jetpack که پیوند دهنده سایت وردپرس خود-میزبانی شده در WordPress.com .

اما از آنجا که REST API در هسته وردپرس ادغام شده بود ، از پرونده xmlrpc.php دیگر برای این ارتباط استفاده نمی شود. در عوض ، REST API برای برقراری ارتباط با برنامه تلفن همراه وردپرس ، با مشتریان دسک تاپ ، با سایر سیستم عامل های وبلاگ نویسی با WordPress.com (برای افزونه Jetpack) و سایر سیستم ها و خدمات. طیف وسیعی از سیستمهایی که REST API می تواند با آنها ارتباط برقرار کند ، بسیار بیشتر از موارد مجاز xmlrpc.php است. همچنین ، انعطاف پذیری بسیار بیشتری وجود دارد.

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

چرا باید xmlrpc.php را غیرفعال کنید h2>

دلیل اصلی غیرفعال کردن xmlrpc.php در سایت وردپرس این است که آسیب پذیری های امنیتی را معرفی می کند و می تواند هدف حملات باشد.

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

اگر xmlrpc.php یک تعهد امنیتی است و دیگر کاری انجام نمی دهد ، چرا به طور کلی از وردپرس حذف نشده است؟

دلیل این امر این است که همیشه یکی از ویژگی های کلیدی وردپرس سازگاری عقب است. اگر سایت خود را به خوبی مدیریت می کنید ، می دانید که به روز نگه داشتن وردپرس ، و همچنین هر پلاگین ها یا موضوعات ، ضروری است.

اما همیشه دارندگان وب سایت هایی هستند که تمایل ندارند یا نمی توانند نسخه وردپرس خود را به روز کنند. اگر آنها نسخه ای را قبل از REST API اجرا می کنند ، همچنان به xmlrpc.php نیاز دارند.

اجازه دهید جزئیات آسیب پذیری خاص را بررسی کنیم.

حملات DDoS از طریق Pingbacks XML-RPC

یکی از عملکردهایی که xmlrpc.php فعال کرده است ، بازپرداخت و پیگیری است. این اعلان هایی است که در هنگام پیوند وبلاگ یا سایت دیگری به محتوای شما ، در نظرات سایت خود نمایش داده می شود.

مشخصات XML-RPC این امکان را ایجاد می کرد ، اما REST API جایگزین آن شده است (همانطور که قبلاً دیدیم).

اگر XML-RPC در سایت شما فعال باشد ، یک هکر به طور بالقوه می تواند یک حمله DDoS را نصب کند در سایت خود با استفاده از xmlrpc.php برای ارسال تعداد زیادی پینگ بک به سایت خود در مدت زمان کوتاه. این می تواند سرور شما را بیش از حد بار کند و سایت شما را از فعالیت خارج کند.

حملات Brute Force از طریق XML-RPC

هر بار xmlrpc.php درخواست می کند ، نام کاربری و رمز عبور را برای تأیید اعتبار می فرستد. این یک مسئولیت امنیتی قابل توجه است و کاری است که REST API انجام نمی دهد. در حقیقت ، REST API از OAuth استفاده می کند که به جای نام های کاربری یا رمزهای عبور ، نشانه هایی را برای تأیید اعتبار می فرستد.

از آنجا که xmlrpc.php اطلاعات احراز هویت را با هر درخواست ارسال می کند ، هکرها می توانند با استفاده از آن سعی در دسترسی به نشستن شما داشته باشند e . حمله خشونت آمیز مانند این ممکن است به آنها امکان وارد کردن محتوا ، حذف کد ، یا آسیب رساندن به پایگاه داده شما را بدهد. p>

اگر مهاجمی به اندازه کافی درخواست به سایت شما ارسال کند ، هرکدام با نام کاربری و جفت رمز عبور متفاوت ، این احتمال وجود دارد که در نهایت با ضربه زدن به سمت راست ، به آنها اجازه دسترسی به سایت شما را بدهد.

به همین دلیل است ، اگر نسخه به روز WordPress را اجرا می کنید ، که از REST API برای برقراری ارتباط با سیستم های خارجی استفاده می کند ، باید xmlrpc.php را غیرفعال کنید . نیازی نیست و می تواند سایت شما را آسیب پذیر کند.

آیا xmlrpc.php در سایت وردپرسی شما اجرا می شود؟ h2>

اولین کاری که باید انجام دهید این است که مشخص کنید xmlrpc.php در سایت وردپرس شما اجرا می شود یا خیر.

این یک مورد ساده برای بررسی وجود فایل نیست: بخشی از نصب WordPress است و حتی اگر XML-RPC غیرفعال باشد نیز وجود خواهد داشت.

همیشه تهیه نسخه پشتیبان قبل از حذف هر چیزی از سایت خود . در این حالت ، فقط فایل xmlrpc.php را حذف نکنید زیرا سایت شما را خراب می کند.

برای بررسی اینکه xmlrpc.php در سایت شما فعال است یا خیر ، از سرویس اعتبار سنجی XML-RPC وردپرس استفاده کنید. با این کار سایت شما بررسی می شود و اگر xmlrpc.php فعال است به شما اطلاع می دهد.

WordPress XML-RPC Validation Service

سرویس تأیید وردپرس XML-RPC

نتیجه ای است که من هنگام بررسی این سایت در سرویس به دست آوردم.

Kinsta XML-RPC check

بررسی Kinsta XML-RPC

div >

این نشان می دهد که xmlrpc.php در kinsta.com غیرفعال شده است. بنابراین اگر بررسی را انجام دهید و متوجه شوید که xmlrpc.php همچنان در سایت شما فعال است ، چگونه آن را خاموش می کنید؟

نحوه غیرفعال کردن xmlrpc.php

سه راه برای غیرفعال کردن xmlrpc.php وجود دارد:

بیایید نگاهی به هر یک به صورت جداگانه بیندازیم.

نحوه غیر فعال کردن xmlrpc.php با یک افزونه h3>

نصب افزونه برای غیرفعال کردن xmlrpc.php ساده ترین راه برای این کار است. افزونه XML-RPC را غیرفعال کنید آن را کاملاً غیرفعال می کند. در اینجا نحوه استفاده از آن آمده است.

نقطه شروع من وب سایت خودم است که xmlrpc.php روی آن فعال است. این را می توانید از طریق بررسی انجام شده مشاهده کنید:

Rachel McCollin website - XML-RPC check

وب سایت Rachel McCollin – بررسی XML-RPC

نصب افزونه از طریق صفحه افزونه ها در مدیر وردپرس ، آن را فعال کنید.

لازم نیست کار دیگری انجام دهید: فعال کردن افزونه باعث می شود XML-RPC غیرفعال شود. اکنون اگر در سایت خود چک کنم ، نتیجه دیگری می گیرم:

Rachel McCollin website - second XML-RPC check

وب سایت راشل مک کولین – بررسی دوم XML-RPC

به همین سادگی است!

Pingbacks XML-RPC را با یک پلاگین غیرفعال کنید h4>

اما اگر بخواهید برخی از جنبه های xmlrpc.php را غیرفعال کنید ، موارد دیگر را نمی توان یافت؟ افزونه Pingback XML-RPC را غیرفعال کنید به شما امکان می دهد فقط عملکرد Pingback را غیرفعال کنید ، به این معنی که هنوز به آن دسترسی دارید. در صورت نیاز به سایر ویژگی های XML-RPC.

افزونه به همان روشی که پلاگین Disable XML-RPC غیرفعال می کند کار می کند: فقط نصب کنید ، فعال کنید و کار خواهد کرد.

فعال سازی XML-RPC و REST API را با یک پلاگین پیکربندی کنید h4>

اگر می خواهید کنترل دقیق تری از نحوه پیکربندی xmlrpc.php و REST API در سایت خود داشته باشید ، می توانید REST XML-RPC Data Checker plugin .

پس از نصب و فعال سازی این افزونه ، به تنظیمات> REST XML-RPC داده جستجوگر بروید و برگه XML-RPC را کلیک کنید.

REST XML-RPC Data Checker

REST XML-RPC جستجوگر داده

این به شما امکان می دهد دقیقاً کدام جنبه های xmlrpc.php را در سایت خود فعال کنید.

متناوباً ، می توانید به سادگی آن را خاموش کنید. و اگر شما همچنین می خواهید بر REST API کنترل داشته باشید ، این افزونه برگه دیگری برای آن در اختیار شما قرار می دهد. p >

نحوه غیر فعال کردن xmlrpc.php بدون پلاگین h3>

اگر ترجیح می دهید افزونه دیگری روی سایت خود نصب نکنید ، می توانید xmlrpc.php را با افزودن چند کد در فیلتر یا . پرونده htaccess . بیایید هر دو روش را بررسی کنیم.

از طریق فیلتر xmlrpc.php را غیرفعال کنید h4>

یک گزینه در اینجا استفاده از فیلتر xmlrpc_enabled برای غیرفعال کردن xmlrpc.php است. این عملکرد را به یک افزونه اضافه کنید و آن را در سایت خود فعال کنید:

  add_filter ('xmlrpc_enabled'، '__return_false')؛  

شما می توانید این را به پرونده توابع تم خود اضافه کنید اما نوشتن یک افزونه روش بهتری است.

گزینه دیگر مربوط به ویرایش پرونده .htaccess شما است ، که با ارائه دهندگان میزبانی که از Apache استفاده می کنند در دسترس است. a> ، با اتصال به سرور سایت خود از طریق FTP یا cPanel .

Kinsta از وب سرور Nginx ، به این معنی که شما یک فایل .htaccess کار نمی کنید. درعوض ، می توانید از ابزارهای درون داشبورد استفاده کنید که می توانند بسیاری از قابلیتهای مهم .htaccess را به روش شهودی بیشتری از طریق داشبورد MyKinsta تکرار کنند. .

از طریق پرونده .htacess xmlrpc.php را غیرفعال کنید h4>

در پرونده .htaccess خود ، این کد را اضافه کنید:

  
سفارش مجاز ، انکار کنید
انکار از همه
 

قبل از انجام این کار حتماً از پرونده قدیمی کپی تهیه کنید ، فقط در صورت بروز هرگونه مشکل.

از ارائه دهنده میزبان خود xmlrpc.php غیرفعال کنید h3>

همچنین ، برخی از ارائه دهندگان میزبانی در صورت شناسایی حمله ، xmlrpc.php را غیرفعال می کنند.

در Kinsta ، وقتی حمله ای از طریق XML-RPC شناسایی شد ، یک قطعه کد به طور خودکار به پرونده Nginx.config اضافه می شود:

  مکان ~ * ^ / xmlrpc.php $ {
بازگشت 403؛
}  

با این کار 403 خطا ایجاد شده و حمله در مسیرهای خود متوقف می شود.

اگر خودتان این کار را انجام می دهید ، بهتر است از یکی از روش های بالا استفاده کنید. اما قبل از انجام این کار ، همیشه ابتدا با ارائه دهنده خدمات میزبانی خود تماس بگیرید.

چه زمانی باید xmlrpc.php را فعال کنید؟ h2>

ممکن است مواردی پیش بیاید که xmlrpc.php را در سایت وردپرس خود فعال کنید یا اینکه نباید آن را کاملاً غیرفعال کنید.

این موارد عبارتند از:

همین! هیچ یک از این موارد دلیل خاصی برای روشن نگه داشتن مشخصات XML-RPC نیست.

تنها دلیل وجود آن در وردپرس سازگاری عقب است و فقط در صورت کار با سیستم های قدیمی از آن استفاده می کنید. برای هر کسی که می خواهد سایتهای خود را به روز نگه دارد و با آخرین فن آوری کار می کند ، غیرفعال کردن xmlrpc.php راهی برای پیشرفت است.
XML-RPC زمانی بخشی اساسی از وردپرس بود. اکنون این یک خطر امنیتی است 🔒 – این راهنما به شما دقیقاً نشان می دهد که چگونه آن را در سایت خود غیرفعال کنید برای توییت کلیک کنید span >

خلاصه h2>

مشخصات XML-RPC قبل از ایجاد وردپرس ایجاد شده است ، به عنوان وسیله ای برای وردپرس برای برقراری ارتباط با سیستم ها و برنامه های خارجی. دارای نقص امنیتی ذاتی است و می تواند سایت شما را در معرض حمله قرار دهد.

اکنون که REST API به شما امکان می دهد سایت شما با سایر برنامه ها ارتباط برقرار کند ، می توانید xmlrpc.php را با خیال راحت غیرفعال کنید. اگر مراحل بالا را دنبال کنید ، با غیرفعال کردن آن ، امنیت سایت خود را بهبود می بخشید.

منبع:
https://kinsta.com/blog/xmlrpc-php/.

دیدگاهتان را بنویسید