در وردپرس به صورت پیشفرض قابلیتی به نام REST API وجود دارد که امکان برقراری ارتباط بین سایت شما و سایر سرویسها یا اپلیکیشنها را فراهم میکند. این قابلیت یکی از مهمترین بخشهای وردپرس مدرن است، اما اگر از آن استفاده نکنید، ممکن است به دلایل امنیتی بخواهید آن را غیرفعال کنید. در این مقاله آموزش امنیت وردپرس، اولا توضیح میدهیم که REST API چیست، چه کاربردی دارد و چطور میتوانید آن را در سایت خود بهصورت کامل یا محدود غیرفعال کنید.
REST API در وردپرس چیست؟
REST API (مخفف Representational State Transfer Application Programming Interface) یک رابط برنامهنویسی است که به توسعهدهندگان اجازه میدهد دادههای سایت را بدون نیاز به ورود به پیشخوان وردپرس، از طریق آدرسهای مشخص (endpoint) دریافت یا ارسال کنند.
به عنوان مثال، اگر اپلیکیشن موبایلی برای سایت وردپرسی خود دارید، REST API دادهها را از وردپرس گرفته و در اپلیکیشن نمایش میدهد. این قابلیت همچنین در افزونهها، قالبها مثل قالب وودمارت و قالب اکسترا و ابزارهای سئو مثل Yoast SEO و Rank Math هم استفاده میشود.
چرا باید REST API را غیرفعال کنیم؟
اگر از این قابلیت استفاده نمیکنید، REST API میتواند اطلاعات عمومی سایت (مانند نام کاربران یا ساختار دادهها) را در اختیار افراد ناشناس قرار دهد. این موضوع ممکن است از نظر امنیتی خطرناک باشد و به نفوذگران سرنخهایی از سایت شما بدهد. بنابراین اگر اپلیکیشن، API یا افزونه خاصی به آن نیاز ندارد، غیرفعال کردن REST API میتواند باعث افزایش امنیت سایت شود.
ناگفته نماند که غیرفعال کردن این قابلیت باعث بهبود سرعت و کاهش بار روی سرور خواهد شد. درصورتی که درخواستهای ارسال شده برای این قابلیت زیاد باشد، باعث افزایش بار و سنگینی سایت شما خواهد شد.
در نهایت توصیه ما به غیرفعالسازی این قابلیت است که باعث افزایش امنیت سایت وردپرس شما خواهد شد.
روش غیرفعال کردن REST API در وردپرس با کد
اگر ترجیح میدهید بدون افزونه این کار را انجام دهید، میتوانید از قطعه کد زیر در فایل functions.php قالب فعال خود استفاده کنید. توصیه ما هم این است که این کارها روی سایتتان بدون نصب افزونه انجام شود تا از سنگینتر شدن سایت جلوگیری کنید.
پیشنهاد مطالعه: آموزش افزودن کد php سفارشی در وردپرس
درصورتی که در نحوه افزودن کد php به فایل functions.php نیاز به کمک داشتید، میتوانید از مقالهای که در بالا لینک کردیم استفاده کنید. در این مقاله بطور کامل نحوه افزودن کد php سفارشی را آموزش دادیم.
برای غیرفعال کردن rest api در وردپرس، کد زیر را به فایل functions.php قالب چایلدتان اضافه کنید.
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_disabled', __( 'دسترسی به REST API برای کاربران غیرمجاز غیرفعال است.' ), array( 'status' => 401 ) );
}
return $result;
});پس از افزودن این کد، میتوانید با استفاده از آدرس زیر تست کنید که این قابلیت غیرفعال شده است یا خیر. فقط کافیست به جای example.com، آدرس سایت خودتان را وارد کنید.
https://example.com/wp-json/
روش غیرفعال کردن REST API در وردپرس با افزونه
با استفاده از افزونههای امنیتی مثل Disable REST API یا WP Hardening میتوانید REST API را در سایتتان غیرفعال کنید. کافیست این افزونهها را نصب و فعال کنید تا دسترسی کاربران غیرمدیریتی به REST API به طور خودکار مسدود شود.
برای نصب هرکدام از این افزونهها میتوانید مراحل زیر را دنبال کنید:
- وارد پیشخوان وردپرس شوید.
- به مسیر افزونهها > افزودن بروید.
- عبارت “Disable REST API” را جستجو کرده و نصب کنید.
- پس از فعالسازی، REST API برای کاربران غیرمجاز غیرفعال میشود.
امیدواریم که این سری از مقالات آموزش امنیت وردپرس و آموزش وردپرس هم مورد توجه و پسند شما قرار گرفته باشد. در صورتی که در رابطه با این آموزش و نحوه ساخت child theme در وردپرس سوال یا مشکلی داشتید در بخش دیدگاهها اعلام کنید تا در کوتاهترین زمان ممکن پاسخگوی شما باشیم.