وردپرس همیشه دارای ویژگی هایی است که به شما امکان می دهند با سایت خود از راه دور تعامل داشته باشید. قطعا برای شما نیز به عنوان مدیر وب سایت پیش آمده که باید به وب سایت وردپرس خود دسترسی پیدا کنید اما رایانه در نزدیکی شما نیست. XML-RPC یک پروتکل ارتباطی است که برای انتقال دادهها بین سرویسدهنده و سرویس گیرنده استفاده میشود. XML-RPC در وردپرس به عنوان یک رابط برنامهنویسی (API) مطرح می گردد که به شما امکان میدهد از طریق یک سری درخواست با وردپرس تعامل کنید و عملیاتی مانند ایجاد، ویرایش و حذف مطالب را از راه دور انجام دهید.
در این مقاله بررسی خواهد شد که xmlrpc.php چیست و چه کاربردی دارد. همچنین به رایجترین مشکلات امنیتی که ایجاد میکند و نحوه رفع آنها در سایت وردپرس اشاره می شود.
XML-RPC در وردپرس چیست؟
XML-RPC یکی از ویژگی های وردپرس است که امکان انتقال داده ها را فراهم می کند. در این متد، HTTP به عنوان مکانیزم انتقال و XML به عنوان مکانیزم رمزگذاری عمل خواهد کرد. از آنجایی که وردپرس یک سیستم محصور نیست و گاهی نیاز به برقراری ارتباط با سیستمهای دیگر دارد، این پروتکل می تواند مفید باشد.
برای مثال، فرض کنید میخواهید از دستگاه تلفن همراه به سایت خود دسترسی پیدا کرده و مقاله ای را پست کنید. برای انجام این کار می توانید از ویژگی دسترسی از راه دور که توسط xmlrpc.php فعال شده است استفاده نمایید.
تصویر(1)
چرا Xmlrpc.php ایجاد شد و چگونه باید از آن استفاده نمود؟
استفاده از XML-RPC به روزهای اولیه معرفی وردپرس برمی گردد. زمانی که نوشتن و انتشار پست در اینترنت بسیار کند بود. در آن زمان بیشتر افراد به جای نوشتن آنلاین مطالب در مرورگر، به صورت آفلاین مطلب را آماده می کردند و سپس محتوای خود را به وب منتقل می نمودند که بسیار دشوار بود.
این اتصال با استفاده از XML-RPC برقرار می شد. برنامههای اولیه از همین اتصال استفاده میکردند تا به افراد اجازه دهند پس از ایجاد چارچوب اولیه XML-RPC، از دستگاههای دیگر وارد سایتهای وردپرس خود شوند. XML-RPC در ابتدا به طور پیش فرض غیرفعال بود تا اینکه وردپرس 2.6 یک ویژگی را در داشبورد خود اضافه کرد تا آن را فعال یا غیرفعال کند. XML-RPC به طور پیش فرض با وردپرس 3.5 و معرفی اپلیکیشن موبایل فعال شد.
XML-RPC امروزی
در سال 2015، هسته وردپرس یک REST API جدید دریافت کرد. این مورد وردپرس را قادر ساخت تا یک API برای تعامل با برنامههای موبایل و دیگر پلتفرمها داشته باشد. در آن زمان بسیاری از توسعه دهندگان از API استفاده می کردند که منجر به کاهش استفاده از XML-RPC شد. به بیان دیگر، REST API جایگزین XML-RPC گردید. XML-RPC در وردپرس همچنان فعال است و فایل xmlrpc.php همچنان در منبع اصلی نرم افزار قرار دارد.
مزایای استفاده از XML-RPC
استفاده از XML-RPC در وردپرس دارای مزایای زیر است:
1. دسترسی از راه دور: با استفاده از XML-RPC، میتوانید از راه دور به وردپرس خود دسترسی پیدا کنید و عملیات مدیریتی را انجام دهید. این مورد به شما امکان میدهد که از هر نقطهای در جهان، به وب سایت خود دسترسی داشته باشید و تغییرات را انجام دهید.
2. امکان اتصال با برنامههای مختلف: XML-RPC یک پروتکل استاندارد است که توسط بسیاری از برنامهها و ابزارهای برنامهنویسی پشتیبانی میشود. این مورد به شما امکان میدهد تا با استفاده از زبانها و ابزارهای مختلفی مانند PHP، Python، Java و ...، با وردپرس ارتباط برقرار کنید و عملیات موردنظرتان را انجام دهید.
تصویر(2)
3. امنیت: استفاده از XML-RPC در وردپرس امکان احراز هویت و امنیت اطلاعات را فراهم میکند. شما میتوانید با استفاده از مکانیزمهای احراز هویت مانند توکنهای API و کلیدهای عمومی یا خصوصی، ارتباط امنی با وردپرس داشته باشید و از دسترسی غیرمجاز جلوگیری کنید.
4. امکانات گسترده: با استفاده از XML-RPC، میتوانید به امکانات گسترده وردپرس دسترسی پیدا کنید. این مورد شامل ایجاد و ویرایش نوشتهها، مدیریت برچسبها و دستهبندیها، بارگذاری فایلها، مدیریت کاربران و احراز هویت، دریافت اطلاعات وضعیت وردپرس و بسیاری از عملیات های دیگر است.
5. امکانات سفارشی: با استفاده از XML-RPC، شما میتوانید امکانات سفارشی خود را نیز به وردپرس اضافه کنید و عملیات خاصی را انجام دهید. این مورد توسط طراحی افزونههایی انجام می شود که از XML-RPC پشتیبانی میکنند و قابلیتهای جدیدی را به وردپرس اضافه می نمایند.
معایب استفاده از XML-RPC
استفاده از XML-RPC در وردپرس دارای معایب متفاوتی است:
- آسیبپذیری امنیتی: XML-RPC در گذشته با برخی آسیبپذیریهای امنیتی مواجه شده است. اگر نسخههای قدیمی و آپدیت نشده از وردپرس یا پلاگینهای مرتبط با XML-RPC استفاده شود، ممکن است به خطر امنیتی ختم گردد. همواره از آخرین نسخههای وردپرس و افزونه ها استفاده کنید و بروزرسانیهای امنیتی را انجام دهید.
- بار اضافی بر سرور: استفاده از XML-RPC ممکن است باعث بار اضافی بر سرور شود. ارتباط با وردپرس از طریق XML-RPC میتواند منابع سرور را بیشتر مصرف کند و در صورت ترافیک بالا، منجر به کاهش عملکرد و سرعت وب سایت شود.
- محدودیتهای عملکردی: قدرت و قابلیت XML-RPC نسبت به روشهای ارتباطی دیگر مانند RESTful API محدودتر می باشد. ممکن است برخی از عملیاتها و قابلیتهای پیشرفته وردپرس را به خوبی پشتیبانی نکند.
- پشتیبانی محدود: XML-RPC در برخی از نسخههای جدید وردپرس به طور پیش فرض غیرفعال می باشد و برخی از میزبانهای وب نیز ممکن است آن را غیرفعال کنند. بنابراین، قبل از استفاده، اطمینان حاصل کنید که XML-RPC فعال است و توسط میزبان وب پشتیبانی میشود.
- پیچیدگی: برای استفاده از XML-RPC نیاز به دانش برنامهنویسی و فهم پروتکل XML دارید. این مورد ممکن است برای کاربرانی که با این تکنولوژیها آشنایی کافی ندارند، پیچیده و دشوار باشد.
تصویر(3)
چرا باید Xmlrpc.php را غیرفعال کنید؟
بزرگترین مشکل XML-RPC در وردپرس نگرانی های امنیتی است که ایجاد می کند. البته این مشکلات مستقیماً مربوط به XML-RPC نیستند بلکه فعال کردن آن می تواند زمینه ساز یک حمله brute force به سایت شما باشد. مطمئناً، می توانید با رمزهای عبور فوق العاده قوی و افزونه های امنیتی وردپرس از خود در برابر این حملات محافظت کنید اما بهترین حالت این است که به سادگی XML-RPC را غیرفعال نمایید.
دو ضعف اصلی در XML-RPC وجود دارد که در گذشته مورد سوء استفاده قرار گرفته اند:
- اولین مورد استفاده از حملات brute force برای ورود به سایت شما است. مهاجمان سعی می کنند با استفاده از xmlrpc.php و ترکیب های مختلف نام کاربری و رمز عبور به سایت شما دسترسی پیدا نمایند. آنها می توانند از یک دستور برای آزمایش صدها رمز عبور مختلف بهره ببرند. این مورد به آنها اجازه می دهد تا ابزارهای امنیتی که معمولاً حملات brute force را شناسایی و مسدود می کنند، دور بزنند.
- دومین مورد، از کار انداختن سایت ها توسط حمله DDoS بود. هکرها از ویژگی pingback در وردپرس برای ارسال فوری پینگ بک به هزاران سایت استفاده می کنند. این ویژگی در xmlrpc.php به هکرها منبع تقریباً بی پایانی از آدرس های IP برای توزیع حمله DDoS روی آنها را می دهد.
برای بررسی اینکه آیا XML-RPC در سایت شما فعال است یا خیر، می توانید آن را از طریق ابزاری به نام XML-RPC Validator بررسی کنید. سایت خود را از طریق ابزار اجرا نمایید. اگر پیام خطا دریافت کردید، به این معنی است که XML-RPC فعال نیست. اگر پیام موفقیت آمیزی دریافت کردید، می توانید xmlrpc.php را با یکی از دو روش زیر غیرفعال کنید.
چگونه XML-RPC در وردپرس غیرفعال می شود؟
اکنون که متوجه شدید به چه دلیلی از xmlrpc.php استفاده می شود و چرا باید حذف گردد، لازم است روش غیر فعال نمودن آن را نیز فرا بگیرید. در مقاله "xml-rpc چیست و آموزش غیرفعال کردن آن در وردپرس" روش های غیرفعالسازی آن بیان شده است.
نتیجه گیری
به طور کلی، XML-RPC در وردپرس یک روش مناسب برای برخی مشکلاتی بود که به دلیل انتشار پست از راه دور رخ می داد. با این حال، حفرههای امنیتی به وجود آمده موجب شد که برای برخی از صاحبان سایت وردپرسی بسیار مضر باشد. برای اطمینان از ایمن ماندن سایت خود، ایده خوبی است که xmlrpc.php را به طور کامل غیرفعال کنید. مگر اینکه به برخی از عملکردهای ضروری جهت انتشار از راه دور، نیاز داشته باشید.