Как проверить, является ли пользователь администратором SECURE - PullRequest
0 голосов
/ 18 апреля 2019

Я сделал функцию входа с защитой от брутфорса, различными функциями защиты ботов, такими как honeypot .., фильтрация ввода, зашифрованный пароль Argon2.

Но в конце, чтобы идентифицировать пользователя, я сохраняю идентификатор в сеансе после успешного входа в систему. С этим идентификатором до сих пор я проверял, имеет ли столбец «admin» значение 1 или 0.

Если это значение равно 1, пользователь может делать все.

Как я могу улучшить безопасность?
Как еще я могу проверить, является ли пользователь администратором?

1 Ответ

0 голосов
/ 18 апреля 2019

Вы должны поступить так, как я вам скажу

Пока у вас есть идентификатор пользователя в действии, так что это половина пути

Я буду считать, что у вас есть файл function.php, в котором есть всефункции, которые вы используете на веб-сайте

Также у вас есть функция входа в систему, которая проверяет данные учетной записи пользователя и предоставляет доступ. Теперь вам нужно улучшить эту функцию, чтобы ограничить доступ пользователя

Первое: создать таблицу в MySQL, назвать ее группойэта таблица будет иметь две записи или, как вам нравится.Администратор будет иметь идентификатор 1 и идентификатор участника 2, тогда вы сможете внести множество изменений, например, сделать еще один столбец в этой таблице с именем upload и установить для admin значение yes, а для членов - нет

Второй в вашей функции входа в систему используйте следующую команду

    $res = mysql_query("SELECT * FROM users INNER JOIN group ON users.class=group.group_id WHERE users.enabled='yes' AND users.status = 'confirmed'") or die(mysql_error());
$row = mysql_fetch_array($res);

Users.class - это идентификатор группы, а users - это таблица users. Теперь вы можете проверить групповые кредиты, например, если на странице загрузки вы делаете следующее

    if($row["can_upload"]=="no")
    echo("admin only can upload ");

Вы можете проверить учетные данные в группепо мере необходимости вы также можете создавать множество классов, таких как admin, участники, авторы добавок, рецензенты, авторы и давать каждому классу особые разрешения при просмотре содержимого веб-сайта

На admin.php вы можете использовать

    if($row["admin"]=="no")
    ech("admin only can view this page ");

В обоих приведенных выше примерах Admin и can_upload являются столбцом в таблице групп и изменяются в зависимости от класса пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...