Я пытаюсь повысить безопасность своего веб-сайта, на котором есть панель администратора и страница пользователя. Пока в моей системе безопасности есть код, который отправляет пользователя обратно на страницу входа, если пользователь пытается получить доступ к странице через URL-адрес. Однако остается еще одна проблема. Если я войду как пользователь, пользователь получит доступ к админ-панели. Этого не должно произойти, поскольку это пользователь, а не администратор.

Вот мой код:

<?php

session_start();

if (!$_SESSION['username']) {
    header("Location: login.php");
}

Может ли кто-нибудь помочь мне, рассказав, как реализовать фрагмент кода, который ограничивает доступ пользователя к панели администратора.

Спасибо!

2
Pro Gamer 14 Янв 2021 в 05:08

2 ответа

Лучший ответ

Создайте столбец для доступа в своей таблице для учетных записей, если пользователь является стандартным пользователем или системным администратором. затем в вашем PHP-коде сохраните доступ в переменной сеанса.

if($_SESSION['access']=='admin'){
     header("Location: admin-panel.php");
}else{
     header("Location: somewhereelse.php");
}
3
Ainz 14 Янв 2021 в 02:17

Добавьте флаги / разрешения / роли в свою таблицу пользователей, затем проверьте, есть ли у текущего вошедшего в систему пользователя разрешение на доступ к странице.

Простой подход для этого - образец:

admin_page.php , поэтому мы предполагаем, что пользователь может получить доступ к этой странице только с правами администратора

Тогда в вашем бэкэнде вы можете проверить разрешение таким образом

if($user->role != "admin")
{
 // return a message here or redirect them to some error page
}
2
Kevin Loquencio 14 Янв 2021 в 02:18
65712418