XML-RPC چیست؟ و چرا در وردپرس برای امنیت سایتمان باید آنرا غیر فعال کنیم؟

ضعیفمتوسطخوببسیار خوبعالی
( 0 رای , میانگین : 0,00 از 5)
بارگذاری...

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

XML-RPC یا XML Remote Procedure Call مبنای ویژگی های زیر در وردپرس است:

  • اتصال به سایت وردپرس خود با استفاده از گوشی هوشمند
  • pingbacks و trackbacks وقتیکه دیگر سایت ها به سایت شما لینک می کنند
  • جت پک (Jetpack)

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

 

XML-RPC چیست و برای چه کاری از آن استفاده می شود؟

به روزهای اولی که وبلاگ نویسی رواج داشت برگردید (خیلی قبل تر از انکه وردپرس وجود داشته باشد)، بسیاری از نویسندگان از اینترنت dial-up برای اتصال به اینترنت و وبگردی استفاده می کردند. از همین رو نوشتن مطالب سخت بود. راه حل این موضوع این بود که به صورت آفلاین در رایانه خود بنویسید و سپس آن را کپی کرده و به وبلاگ خود منتقل کنید. افرادی که از این روش استفاده می کردند متوجه شدند که این روش کمی مشکل زا است چرا که اغلب آنها از کد و پیوست های مختلف در مطلب خود استفاده می کردند که این موضوع حتی اگر مطلب مذکور را در رایانه به صورت HTML هم ذخیره می کردند باز هم مشکل بود.

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

حالا یک دهه یا بیشتر جلوتر بیایید، امروزه ما از اپ ها در گوشی ها و تبلت های خود استفاده می کنیم. یکی از چیزهایی که افراد دوست دارند با استفاده از گوشی های خود انجام دهند این است که مطالبی را به سایت وردپرس خود ارسال کنند. در سال ۹-۲۰۰۸، شرکت Automattic خود را موظف دانست که برنامه های وردپرسی را برای هر یک از سیستم عامل های موبایل ایجاد کنید.

این اپ های به شما اجازه میدادند تا از طریق XML-RPC از مشخصات خود در wordpress.com استفاده کرده و وارد هر سایت وردپرسی که به آن دسترسی داشتید بشوید.

حالا شما حتما به این موضوع فکر می کنید که “اوه، اگر کسی پسورد من رو داشته باشه چه اتفاقی میافته؟” جوابش خیلی خوشایند نیست: هر کسی می تواند هر کاری که شما می توانید انجام دهید را انجام دهد. به این خاطر که اونها در حقیقت شما هستند.

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

 

تاریخچه: آیا XML-RPC باید در وردپرس باقی بماند یا نه؟

پشتیبانی از XML-RPC از همان روز اول بخشی از وردپرس بوده است. اگر میخواهید از این ویژگی ایراد بگیرید باید بدانید که این ویژگی جزئی از تاریخ وردپرس بوده است؛ بخشی از پلتفرم b2 که Matt Mullenweg از آن برای ساخت وردپرس استفاده کرد.

نسخه ۲٫۶ وردپرس در ۱۵ جولای ۲۰۰۸ منتشر شد. XML-RPC به قسمت تنظیمات انتشار از راه دور مطالب در وردپرس اضافه شده بوده البته به صورت پیش فرض غیرفعال بود.

یک هفته بعد، اپ وردپرس برای آیفون بیرون آمد و کاربران آن میخواستند تا این قابلیت را فعال کنند.

۴ سال بعد از آنکه اپ آیفون وردپرس به این خانواده بزرگ ملحق شد، در نسخه ۳٫۵ وردپرس این قابلیت به صورت پیش فرض فعال شد.

نقاط ضعف XML-RPC به شرح زیر هستند:

  • حملات Brute force: هکرها تلاش می کنند تا از طریق xmlrpc.php وارد سایت وردپرس شوند و این کار را با ترکیب تعداد زیادی از نام های کاربری و کلمات عبور انجام می دهند. روشی وجود دارد که از طریق xmlrpc.php به هکر اجازه می دهد تا از یک خط دستور برای حدس زدن صدها پسورد استفاده کند. به گونه ای که Daniel Cid در تیم Sucuri به خوبی این روش را توضیح داده و گفته است: “با تنها ۳ یا ۴ درخواست HTTP، هکر می تواند به صدها پسورد دست پیدا کرده و از ابزارهایی که برای جلوگیری از این نوع حمله تعبیه شده اند را دور بزند.”
  • حملات DoS از طریق pingback: در سال ۲۰۱۳، هکرها درخواست های pingback را از طریق xmlrpc.php به بیش از ۲۵۰۰ سایت وردپرس ارسال کردند. این کار به هر هکری اجازه می داد تا با تعداد نامحدودی آیپی حملات DoS را روی صد میلیون سایت وردپرس ترتیب دهد آن هم بدون آنکه به آنها نفوذ کرده باشد.

 

راحتی کار یا امنیت وردپرس

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

 

چه کارهایی میتوانم برای امنیت XML-RPC انجام دهم؟

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

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

نکته: قبل از انجام هر گونه تغییر از این که میتوانید فایل .htaccess را ایجاد یا ویرایش کنید اطمینان حاصل کنید.

  • بررسی کنید که آیا فایل .htaccess از قبل وجود دارند یا نه. اگر فایل مذکور در روت هاست شما وجود نداشت، بهتر است آن را ایجاد کنید.
  • اگر فایل مذکور وجود دارد، آن را ویرایش کرده و کد زیر را در بالای آن قرار دهید:
    
    
    </pre>
    <pre><Files xmlrpc.php>
    Order Allow,Deny
    Deny from all
    </Files>
    

شما می توانید این کار را تنها با نصب افزونه Disable XML-RPC نیز انجام دهید.

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

 

غیرفعال کردن جزئی XML-RPC در وردپرس

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

در اینجا به برخی از افزونه هایی که میتوانند به شما کمک کنند خواهیم پرداخت:

  • Stop XML-RPC Attack: تنها به جت پک و دیگر ابزارهای Automattic اجازه دسترسی به xmlrpc.php را از طریق .htaccess می دهد.
  • Control XML-RPC Publishing: تنها گزینه مربوط به انتشار از راه دور را به قسمت تنظیمات > نوشتن برمیگرداند.
  • iThemes Security, Anti-Malware Security and Brute-Force Firewall and All in One WP Security & Firewall: این ابزارهای امنیتی شامل ویژگی محفاظت در برابر brute force هستند. آنها تلاش های تکراری برای ورود با استفاده از xmlrpc.php یا بدون استفاده از آن را ثبت کرده و کاربران و سایت های خاطی را بلوکه می کنند.

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

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

 

REST؛راهی برای نجات

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

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

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

اپ اجتماعی مورد نظر نیز کوکی مربوط به خود را در مروگر کاربر ثبت می کند از همین رو است که تا زمانیکه این کوکی پابرجاست، نیازی نیست که کاربر جزئیات حساب کاربری خود را وارد کند.

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

تیم REST API روی یک ”Authentication Broker” کار می کنند که اجازه اتصال به هر یک از سایت های وردپرس را می دهد.

 

تست REST API در وردپرس

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

  1. اطلاعاتی در این زمینه کسب کنید. می توانید مقالات موجود در مورد REST API را مطالعه کنید.
  2. مطلب Joe Hoyle’s post introducing the Authentication Broker را مطالعه کنید.
  3. آخرین نسخه افزونه REST API را از مخزن وردپرس دریافت و نصب کنید.
  4. مدتی را صرف آشنایی با مستندات REST API کرده و یاد بگیرید که چگونه از آن استفاده کنید.
  5. افزونه OAuth v1 را از GitHub دریافت و نصب کنید.
  6. افزونه authentication broker را نیز دریافت و نصب کنید.
  7. اپ مورد نظر را ایجاد کنید.

 

پایان…!

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



جواد
( عضو از 6 سال قبل )
  • 168 نوشته
  • 34 دیدگاه
  • 0 محصول
  • 0 دوره آموزشی
جواد - عضو تیم تحریریه مجموعه نوین وردپرس...

نظرات کاربران

ثبت دیدگاه

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

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

مطالب مرتبط



آموزش رفع خطای 413 وردپرس | روش های رفع ارور request entity too large

3182
0
یکی دیگر از رایج ترین خطاهای وردپرس که ممکن است با آن مواجه شوید، خطای 413 یا همان request entity too large می باشد. این خطا در اغلب ...
جزییات بیشتر آموزش را بخوانید!

الگوریتم گورخر گوگل چیست؟ چطور از Zebra در امان باشیم

280
0
آیا تا به حال نام الگوریتم گورخر گوگل را شنیده اید؟ شاید برایتان کمی عجیب باشد، اما این الگوریتمیست که توسط گوگل برای بهبود نتایج موتور جستجوی خود ...
جزییات بیشتر آموزش را بخوانید!

آموزش افزودن لینک به فوتر سایت با ابزارک فهرست

265
0
نمایش صفحات خود در فوتر سایت یک راه عالی برای آزاد سازی فضای منوی اصلی برای صفحات مهمتر است. به عنوان مثال اگر تعداد دسته‌بندی‌های سایت شما زیاد ...
جزییات بیشتر آموزش را بخوانید!

آموزش نصب وردپرس روی CyberPanel

297
0
وردپرس امروزه محبوب ترین سیستم مدیریت محتوای خود میزبان (CMS) است که همراه با صدها قابلیت ارائه می شود که با استفاده از آن می توانید بدون نیاز ...
جزییات بیشتر آموزش را بخوانید!

آموزش رفع مشکل دکمه افزودن پرونده چندرسانه ای در وردپرس

1951
0
آیا دکمه افزودن پرونده چندرسانه ای شما به درستی کار نمی کند؟ دکمه افزودن رسانه به شما این امکان را می دهد تا آیتم های رسانه ای مانند ...
جزییات بیشتر آموزش را بخوانید!

آشنایی با ویژگی ها و قابلیت های نسخه ۴٫۹ وردپرس

1945
3
ویژگی ها و قابلیت های جدید نسخه بتای ۴٫۹ وردپرس با سلام خدمت دوستان عزیز نوین وردپرس در این آموزش قصد داریم شما را با امکانات جدیدی که به این ...
جزییات بیشتر آموزش را بخوانید!

نحوه رفع مشکل قفل شدن ناحیه مدیریت وردپرس | چگونه خطای Locked Out Of Wp-Admin را رفع کنیم؟

1066
0
یکی از بدترین خطاهایی که می تواند روزکاری شما را خراب کند، مشکل قفل شدن ناحیه مدیریت وردپرس می باشد. در واقع؛ این خطا باعث می شود که ...
جزییات بیشتر آموزش را بخوانید!

ادان دامین در هاست | آموزش اضافه کردن Addon Domain یک آدرس مجزا به هاست

682
0
بسیاری از کاربران هستند که می خواهند دو یا چند سایت مجزا را روی یک هاست اجرا کنند و از فضای هاست خود به شکلی بهینه تر استفاده ...
جزییات بیشتر آموزش را بخوانید!

دسته بندی مطالب

محصولات حرفه ای

جستجو کنید…

همکار ما شوید

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

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