جلوگیری از ورود کاربران به wp-admin
مقالات وردپرسچگونه با ایجاد محدودیت برای کاربران عادی سایت در جهت مشاهده پیشخوان وردپرس یا همان wp-admin ، امنیت بیشتری در سایت ایجاد کنیم ؟

قسمت wp-admin درحقیقت پیشخوان وردپرس است و تمامی مدیران سایت و استفاده کنندگان از این سیستم مدیریت محتوا ، با این قسمت کاملا آشنایی دارند . قسمت wp-admin بخشی است که تمام مدیریت سایت شما از همین بخش کنترل میشود و تنها کسانی حق دسترسی به این قسمت را دارند که یکی از چندین نقش کاربری تعریف شده در وردپرس را داشته باشند .
اگر با نقشهای کاربری در وردپرس آشنا باشید حتما اطلاع دارید که بسته به نقش کاربران ، که شامل مدیرکل و نویسنده و … است ، میتوان قسمتهایی از پیشخوان را مشاهده کرد اما در این بین موضوعی وجود دارد !
زمانی که سایت شما کاربر پذیر است و امکان ثبت نام در داخل سایت شما وجود دارد ( سایت شما فروشگاهی است ، بخش ثبت آگهی دارد و … ) ، تمامی کاربرانی که در سایت شما ثبت نام میکنند ، بصورت پیشفرض با نقش کاربری ” مشترک ” در سایت شما ثبت نام خواهند کرد .
پس از ثبت نام کاربران در سایت شما ، بصورت اتوماتیک ، در داخل قسمت مدیریت کاربران ، user های جدید با نقش ” مشترک ” ایجاد خواهند شد . اگر سیستم وردپرس شما بصورت پیشفرض کدنویسی خاصی جهت ایجاد محدودیت جهت جلوگیری از ورود کاربران به wp-admin نداشته باشد و کاربران سایت آدرس سایت شما را بصورت :
site.com/wp-admin
وارد کنند ، بخش پیشخوان وردپرس را با حداقل آیتمهای دسترسی مشاهده خواهند کرد که شامل منوهای پیشخوان و شناسنامه است و دسترسی آنچنان زیادی به مدیریت سایت یا ایجاد تغییر در آن وجود ندارد .
اما با این وجود بازهم این موضوع ناخوشایند است که کاربران سایت که هیچگونه الزامی به دسترسی در بخش wp-admin ندارند ، قادر باشند تا این قسمت از سایت را مشاهده کنند . برای جلوگیری از ورود کاربران عادی سایت به بخش wp-admin میتوان از چندین روش مختلف استفاده کرد .
بهترین روش برای محدود کردن wp-admin
بهترین روش جهت جلوگیری از ورود کاربران عادی به بخش مدیریت ، استفاده از یک قطعه کد امن است . این قطعه کد ابتدا بررسی خواهد کرد که آیا کاربر در سایت لاگین نموده است یا خیر ، و پس از بررسی این بخش ، بررسی خواهد کرد که نقش کاربری که وارد سایت شده است چیست ؟
اگر کاربر نقشی بغیر از مدیر کل یا همان administrator داشت ، از طریق تابع wp_redirect به آدرس home_url یا همان صفحه اصلی منتقل خواهد شد و به این ترتیب تحت هیچ شرایطی قادر به مشاهده پیشخوان وردپرس نیست !
add_action ( 'init' , 'blockusers_init');
function blockusers_init()
{
if (is_admin() && is_user_logged_in())
{
$user_info = get_userdata(get_current_user_id());
$user_role = implode(',' , $user_info->roles);
if($user_role != 'administrator')
{
wp_redirect(home_url());
exit;
}
}
}
این قطعه کد را حتما در داخل فایل functions.php و یا فایل wp-config قرار دهید . اگر داخل functions.php قرار دهید ، این محدودیت تنها در قالب فعال شما اعمال خواهد شد اما اگر داخل فایل wp-config قرار دهید ، در تمامی پوستههای نصب شده روی وردپرس شما این محدودیت اعمال خواهد شد .
در این قسمت میتوان نقشهای دیگر را نیز داخل شرط بررسی کرد و اینگونه اشاره کرد که اگر کاربر جزنقشهای مدیر کل ، نویسنده و ویرایشگر نبود ، این تغییر مسیر به صفحه اصلی انجام شود . این کار توسط افزونههای مختلفی نیز قابل انجام است که در مخزن وردپرس جهت استفاده بصورت رایگان قرار گرفتهاند اما اگر با قسمت کدنویسی آشنایی دارید ، بهتر است از این قطعه کد که چندخط بیشتر نیست استفاده کنید یا از طراح سایت خودتان درخواست کنید که این کار را برای شما انجام دهد .
add_action ( 'init' , 'blockusers_init');
function blockusers_init()
{
if(is_admin() && !current_user_can("manage_options")) {
wp_redirect(home_url());
exit;
}
همچنین علاوه بر اعمال محدودیت براساس نقش ها میتوان از بررسی توانایی هایی کاربر استفاده کرد همانطور که می دانید در وردپرس هر کاربر براساس نقشی که دارد دارای توانایی های خاصی است برای مثال توانایی خواندن مطالب و مشاهده سایت برای همه کاربران فعال است. و قابلیت تغییر تنظیمات سایت فقط در دسترس مدیر سایت است با استفاده از کد بالا نیز میتوانید با بررسی توانایی کاربر فعلی تغییر مسیر را انجام دهید و از دسترسی کاربران غیر مجاز به قسمت پیشخوان سایت جلوگیری کنید . پاینده باشید !