我做了一个带有蛮力保护的登录功能,不同的机器人保护功能,如蜜罐..,输入过滤,Argon2加密密码。
但最终为了识别用户,我在成功登录后将 id 保存在会话中。直到现在,我使用这个 id 检查“admin”列的值是 1 还是 0。
如果此值为 1,则用户可以执行任何操作。
我怎样才能提高安全性?
我还能如何检查用户是否是管理员?
你应该按照我的指示去做
只要您有用户ID,就完成了一半
我会假设你有function.php,它有你在网站上使用的所有功能
您还具有登录功能,可检查用户帐户详细信息并授予访问权限您现在需要改进以限制用户访问权限
第一:在 MySQL 中创建表叫它组这个表将有两条记录或者你喜欢这样。管理员将有 id 1 和成员 id 2 然后您可以进行很多修改,例如在该表中创建另一个名为 upload 的列并将 admin 设置为 yes 而 members 设置为 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 现在您可以检查组学分,例如,如果在上传页面上执行以下操作
if($row["can_upload"]=="no")
echo("admin only can upload ");
您可以根据需要检查组的凭据,也可以创建很多类,如管理员、成员、上传者、审阅者、作者,并在查看网站内容时为每个类授予特殊权限
在 admin.php 上,您可以使用
if($row["admin"]=="no")
ech("admin only can view this page ");
在上面的两个示例中, Admin 和 can_upload 是组表中的列,并且由 user class 更改。