Xmlrpc.php در وردپرس چیست ؟

Xmlrpc.php در وردپرس چیست و چرا باید آن را غیرفعال کنید ؟

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

در زیر ما به بررسی اینکه xmlrpc.php در واقع چیست و چرا ایجاد شده است می پردازیم. ما همچنین موارد امنیتی مشترک ایجاد شده و نحوه امن نگاه داشتن سایت وردپرس را مرور می کنیم.

 

Xmlrpc.php چیست؟

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

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

ویژگی های اصلی که xmlrpc.php را فعال کرده است این امکان را به شما می دهد تا از طریق تلفن هوشمند به سایت خود متصل شوید .

 

چرا Xmlrpc.php ایجاد شد و چگونه استفاده شد؟

پیاده سازی XML-RPC به روزهای ابتدایی وردپرس برمی گردد حتی قبل از اینکه وردپرس شود.

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

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

 

XML-RPC امروزه

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

با این حال ، عملکرد این پرونده با گذشت زمان بسیار کاهش یافته است و اندازه کلی پرونده از 83 کیلوبایت به 3 کیلوبایت کاهش یافته است ، بنابراین به اندازه سابق نقشی ندارد.

WordPress REST API چیست ؟

اگر طی چند سال گذشته هر زمان را در انجمن وردپرس گذرانده اید ، به احتمال زیاد شنیده اید که به API جدید REST اشاره شده است. با این حال ، تا زمانی که یک توسعه دهنده باتجربه نباشید ، ممکن است ایده ای نداشته باشید که WordPress REST API در واقع چیست.

در حالی که جزئیات فنی کمی پیچیده است ، درک مفاهیم اساسی این ویژگی به راحتی کافی است. API جدید به گسترش آنچه WordPress بعنوان یک پلتفرم می تواند کمک کند. چه اینکه ، REST API اتصال وردپرس را با سایر سایت ها و برنامه ها برای توسعه دهندگان ساده تر از همیشه می کند.

 

چرا باید Xmlrpc.php را غیرفعال کنید

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

مطمئناً ، می توانید با رمزهای عبور فوق العاده قوی و پلاگین های امنیتی وردپرس از خود محافظت کنید. اما ، بهترین حالت محافظت ، غیرفعال کردن ساده آن است.

دو ضعف اصلی در XML-RPC وجود دارد که در گذشته مورد بهره برداری قرار گرفته است.

اولین مورد استفاده از حملات brute force برای ورود به سایت شما است. یک مهاجم سعی خواهد کرد با استفاده از ترکیبات مختلف نام کاربری و رمز عبور با استفاده از xmlrpc.php به سایت شما دسترسی پیدا کند. آنها می توانند به طور موثر از یک دستور واحد برای آزمایش صدها رمز عبور مختلف استفاده کنند. این به آنها اجازه می دهد تا از ابزارهای امنیتی که به طور معمول حملات بی رحم را شناسایی و جلوگیری می کنند ، عبور کنند.

مورد دوم آفلاین کردن سایت ها از طریق حمله DDoS بود. هکرها از ویژگی pingback در وردپرس استفاده می کنند تا بلافاصله برای هزاران سایت پینگ بک ارسال کنند. این ویژگی در xmlrpc.php تقریباً بی پایان آدرس های IP را برای توزیع حمله DDoS به هکرها می دهد.

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

 

روش 1: غیرفعال کردن Xmlrpc.php با افزونه

غیرفعال کردن XML-RPC در سایت وردپرس شما کار ساده تری نیست.

کافیست از داخل داشبورد وردپرس خود به بخش Plugins ›Add New بروید.

یا در پنل فارسی افزونه > افزودن .

غیرفعال کردن XML-RPC را جستجو کنید و افزونه ای را که مانند تصویر زیر است نصب کنید:

می توانید از افزونه Disable XML-RPC  نوشته Philip Erb با لینک زیر استفاده کنید :

https://wordpress.org/plugins/disable-xml-rpc

افزونه را فعال کنید و همه چیز آماده است. این افزونه به طور خودکار کد لازم برای غیر فعال  کردن XML-RPC را وارد می کند.

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

اگر می خواهید فقط برخی از عناصر XML-RPC را خاموش کنید ، اما همچنان به برخی از افزونه ها و ویژگی ها اجازه کار می دهید ، به جای آن از افزونه های زیر استفاده کنید:

XML-RPC Attack را غیر فعال کنید. این افزونه تمام حملات XML-RPC را متوقف می کند ، اما همچنان به پلاگین هایی مانند Jetpack و سایر ابزارها و پلاگین های خودکار اجازه می دهد تا دسترسی به پرونده xmlrpc.php را حفظ کنند.
انتشار XML-RPC را کنترل کنید. این به شما امکان می دهد کنترل و استفاده از گزینه انتشار از راه دور ارائه شده توسط xmlrpc.php را حفظ کنید.

روش 2: غیرفعال کردن دستی Xmlrpc.php

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

پرونده .htaccess خود را باز کنید. برای یافتن این فایل ممکن است مجبور شوید “نمایش پرونده های پنهان” را در مدیر فایل یا سرویس گیرنده FTP خود روشن کنید.

در داخل فایلhtaccess ، کد زیر را وارد کنید:

 


# Block WordPress xmlrpc.php requests
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx

خلاصه مطلب

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

برای اطمینان از امنیت سایت شما ، بهتر است xmlrpc.php را کاملاً غیرفعال کنید. مگر اینکه به برخی از توابع مورد نیاز برای انتشار از راه دور و پلاگین Jetpack نیاز داشته باشید. سپس ، همچنان می توانید از سوراخ های امنیتی وصله کنید ، از پلاگین های قابل استفاده برای این ویژگی ها استفاده کنید.

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

آیا دسترسی XML-RPC را از طریق یک افزونه یا دستی مسدود کرده اید؟ یا از ابتدا فعال بودن هیچ مشکلی امنیتی را تجربه نکرده اید؟ لطفاً تجربه خود را در نظرات زیر به اشتراک بگذارید.

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