xml-rpc چیست و آموزش غیرفعال کردن آن در وردپرس
XML-RPC ویژگی است که ارتباط بین وردپرس و سایر سیستم ها را امکان پذیر می کند. XML-RPC از پروتکل HTTP به عنوان مکانیزم حمل و نقل و از XML به عنوان مکانیسم کدگذاری استفاده می نماید. از آنجا که وردپرس یک سیستم مستقل نیست و گاهی اوقات نیازمند برقراری ارتباط با دیگر سیستم ها است، XML-RPC ایجاد شده تا این مشکل را رفع کند.
به عنوان مثال، شما می خواهید از دستگاه تلفن همراه خود اقدام به ارسال یک پست در سایت وردپرسی نمایید، زیرا امکان حمل کامپیوتر خود را نداشته یا به آن دسترسی ندارید. شما می توانید از قابلیت دسترسی از راه دور که توسط فایل xmlrpc.php در وردپرس فعال شده است برای انجام این کار استفاده نمایید. ویژگی هایی در فایل xmlrpc.php فعال شده است که به شما امکان اتصال به سایت را از طریق گوشی هوشمند، پیاده سازی Trackbacks و Pingbacks از سایر سایت ها و برخی از توابع مرتبط با پلاگینی مانند Jetpack را می دهد.
دلیل ایجاد فایل Xmlrpc.php و نحوه استفاده از آن:
پیاده سازی XML-RPC به روزهای اولیه وردپرس پیش از آن که به یک سیستم مدیریت محتوای محبوب به مانند امروز تبدیل شود، باز می گردد. در روزهای اولیه اینترنت، هنگامی که ارتباطات فوق العاده آهسته بود، روند نوشتن و انتشار در وب بسیار سخت تر و وقت گیر بود. به جای نوشتن در داخل مرورگر، اکثر مردم به صورت آفلاین می نوشتند، سپس محتوا ها را در وب سایت خود کپی و منتشر می کردند. با این حال، این روند به دور از یک روش ایده آل بود. راه حل (در آن زمان)، ایجاد یک سرویس وبلاگ نویسی آنلاین بود، جایی که شما می توانستید مطالب خود را ایجاد و سپس به وبلاگ خود انتقال دهید تا آن را منتشر نمایید. این اتصال از طریق فایل XML-RPC میسر شد. با استفاده از چارچوب XML-RPC، برنامه های اولیه از همین ارتباط استفاده می کردند تا به افراد اجازه ورود به سایت های وردپرسی خود را از دستگاه های دیگر بدهند.
دلیل غیر فعال سازی xml-rpc در وردپرس؟
بزرگترین ضعف فایل XML-RPC نگرانی های امنیتی است که بوجود می آورد. این مسائل به طور مستقیم با XML-RPC مرتبط نیست، اما با کمک این فایل می توان حملات مختلفی را روی سایت های وردپرسی انجام داد. به طور مثال هکرها می توانند از این قابلیت به عنوان یکی دیگر از راه های brute force و دسترسی به اطلاعات سایت وردپرسی شما از قبیل نام کاربری و کلمه عبور سایت شما استفاده کنند. مطمئنا، شما می توانید سایت وردپرسی خود را با رمزهای عبور فوق العاده قوی و پلاگین های امنیتی ایمن نمایید. اما بهترین حالت محافظت این است که XML-RPC را غیر فعال کنید. دو ضعف عمده برای XML-RPC وجود دارد که باعث سو استفاده از این فایل می گردد.
انواع روش غیرفعال سازی xml-rpc در وردپرس:
روش اول : (استفاده از افزونه وردپرس )
افزونه هایی برای غیرفعال سازی این مورد ساخته شده اند که از مثال های بارز آن می توان به افزونه ی "Disable XML-RPC" اشاره کرد. افزونه های دیگری مانند "iThemes Security" و "NinjaFirewall" هم وجود دارند که با استفاده از آن ها می توانید این کار را انجام دهید.
آموزش نصب افزونه Disable XML-RPC:
ابتدا وارد بخش افزونه ها در مدیریت وردپرس خود می شوید و سپس طبق تصویر زیر، در کادر جست و جو کافی است افزونه Disable XML-RPC (شماره1) را جست و جو نمایید و سپس با کلیک روی گزینه "هم اکنون نصب کن" (شماره2) اقدام به نصب و سپس فعال سازی افزونه نمایید.
تصویر (1)
پس از نصب و فعال سازی افزونه نیاز به انجام کار خاصی نمی باشد و این افزونه به صورت خودکار فایل مذکور را در هاست شما غیر فعال می نماید.
روش دوم (استفاده از کد نویسی در فایل function.php قالب وردپرس)
برای اینکه XML-RPC را غیرفعال کنید کدی را که در زیر قرار گرفته شده است را به فایل functions.php قالب وردپرس خود اضافه نمایید.
add_filter('xmlrpc_enabled', '__return_false');
فایل functions.php در مسیر wp-content/themes در هاست شما قابل دسترسی می باشد.
نکته: قبل از انجام این کار ابتدا از هاست خود یک نسخه پشتیبان تهیه نمایید یا یک نسخه کپی از فایل Function.php تهیه کرده تا در صورتی که مشکلی برای سایت شما ایجاد شد بتوانید اقدام به برطرف کردن آن نمایید.
روش سوم (استفاده از کد در فایل htaccess.)
در روش سوم، عملا به جای غیر فعال کردن کامل فایل XML-RPC، از طریق فایل htaccess.، به طور کامل از دسترسی به فایل xmlrpc.php جلوگیری به عمل آورید. وقتی کسی نتواند به فایل xmlrpc.php دسترسی پیدا کند، از امکانات XML-RPC هم نمی تواند استفاده یا سوء استفاده نماید. یکی از مزیت های این روش، امکان دسترسی به این فایل صرفا با یک یا چند آیپی خاصی می باشد.
1 ) دسترسی به فایل htaccess. در هاست Direct Admin:
ابتدا با استفاده از اطلاعات ورود، شامل نام کاربری و رمز عبور به هاست دایرکت ادمین خود ورود نمایید و سپس طبق تصویر زیر روی گزینه "File Manager" کلیک کنید.
تصویر (2)
تصویر (3)
نکته 2: ممکن است این فایل در هاست دایرکت ادمین شما وجود نداشته باشد، جهت ایجاد این مورد کافی است در انتهای این صفحه روی گزینه "Create New File" کلیک نمایید و فایل مورد نظر را بسازید.
پس از انتخاب گزینه "Edit" وارد بخش ویرایش فایل htaccess. می شوید و سپس کد زیر را در فایل مذکور وارد نمایید:
# Prevent Access to xmlrpc.php File
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
در انتها کافی است طبق تصویر شماره 4 روی گزینه "Save As" کلیک نمایید تا کد مذکور در فایل htaccess. ذخیره گردد.
تصویر (4)
2) دسترسی به فایل htaccess. در هاست Cpanel:
پس از ورود به هاست خود از بخش "File manager" وارد مسیر "Public_html" شوید و پس از ورود، ابتدا فایل "htaccess." انتخاب نمایید (شماره1) و سپس روی گزینه "Edit" کلیک نمایید (شماره 2)، تا وارد محیط ویرایش فایل مذکور شوید.
تصویر (5)
نکته 3: ممکن است فایل htaccess. در هاست سی پنل شما مخفی باشد جهت رویت این مورد می بایست روی گزینه "Setting" در منو بالای Cpanel کلیک نمایید و گزینه "Show Hidden Files" را فعال کنید.
نکته 4: در صورتی که با فعال کردن گزینه Show Hidden Files فایل htaccess. را مشاهده نکردید به این معنی است که فایل مورد نظر در هاست موجود نیست. ابتدا گزینه "New File" شماره (1) در بالای cpanel را انتخاب نمایید. در کادر مشخص شده نام فایل مورد نظر را تایپ کرده (شماره 2) و در انتها روی گزینه "Create New File" کلیک نمایید (شماره 3) تا فایل مورد نظر ایجاد گردد.
تصویر (6)
پس از مشاهده فایل "htaccess."، فایل را باز کرده و کد زیر را در آن قرار هید و سپس روی گزینه "Save" کلیک نمایید:
# Prevent Access to xmlrpc.php File
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
می توانید به جای IP پیش فرضی که در کد بالا مشاهده می نمایید آی پی خود را وارد کنید تا صرفا شما دسترسی به فایل مورد نظر را داشته باشید. هم چنین در صورتی که قصد دارید به طور کلی از این امکان استفاده نکنید، می توانید این خط را به طور کامل حذف کنید تا دسترسی به فایل xmlrpc.php برای همه غیر مجاز باشد.