Php 这个安全吗。用户级管理
在初始化会话数据并定义变量$auth_level之后,我在所有页面上使用以下代码 我用它来决定向不同级别的用户显示什么Php 这个安全吗。用户级管理,php,security,Php,Security,在初始化会话数据并定义变量$auth_level之后,我在所有页面上使用以下代码 我用它来决定向不同级别的用户显示什么 <?php if($auth_level == 'basic'){ // auth_level basic if (!isset($_SESSION['username'])) { header('Location: login.php'); } } else if ($auth_le
<?php
if($auth_level == 'basic'){
// auth_level basic
if (!isset($_SESSION['username'])) {
header('Location: login.php');
}
} else if ($auth_level == 'admin'){
// auth level admin
if (!isset($_SESSION['username']) || $_SESSION['role'] != 2) {
header('Location: login.php');
}
} else {
// auth level admin assumed for security
if (!isset($_SESSION['username']) || $_SESSION['role'] != 2) {
header('Location: login.php');
}
}
?>
这个可能会有帮助:
简而言之:您应该在$_会话中存储更多信息以区分客户端(如ip等),否则,我可以使用您的会话ID获取您的cookie,并根据您获取“用户名”和“角色”值的方式进行正确的身份验证。如果您不退出
代码>在标题之后('位置:…)代码>脚本不会在该点停止。顺便说一句,这是离题的,因为我可能还没有喝足够的咖啡。。。但它看起来像是在检查身份验证级别,然后检查用户名是否设置在auth_level=='basic'块中。你应该先检查用户名吗?为什么说“如果$auth_level
是“admin”,那么就这样做,但是如果是其他的,那么就做同样的事情?为什么不简单地做if(basic){}else{}
?你可以做一件事。你可以做一个文件”导航器“并将其包含在每一页中。有时我有两个以上的用户级别,这就是为什么我有额外的语句。