我做了一个具有bruteforce保护功能的登录功能,不同的bot保护功能,例如honeypot ..,输入过滤,Argon2加密密码。
但是最终要识别用户,我将在成功登录后将ID保存在会话中。 直到现在,我都使用此ID来检查“ admin”列的值是1还是0。
如果此值为1,则用户可以执行所有操作。
我如何提高安全性?
我还能如何检查用户是否是管理员?
答案 0 :(得分:0)
您应该照我指示的去做
只要您有用户ID,就可以完成
我将假定您具有function.php,该函数具有您在网站上使用的所有功能
您还具有登录功能,可检查用户帐户详细信息并授予访问权限 现在,您需要对此进行改进,以限制用户访问权限
第一: 在MySQL创建表中称它为“ group”,该表将有两个记录或您希望的那样。管理员的ID为1,成员的ID为2,那么您可以进行很多修改,例如在该表中创建称为上载的另一列,并将admin设置为yes,将成员设置为no
您登录功能中的第二项使用以下
$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是组ID,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都是组表中的列,并且已由用户类更改。