مشخصات 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 فعال است به شما اطلاع می دهد.
نتیجه ای است که من هنگام بررسی این سایت در سرویس به دست آوردم.
منبع:
https://kinsta.com/blog/xmlrpc-php/.