2

我有一个关于header('location: ----.php'). ADMIN 使用此功能限制某些页面的 USER 访问是否安全?例如,如果用户不是管理员,我可以使用此功能来阻止用户查看某些页面吗?这是保护某些页面免受未经授权访问的好方法吗?如果没有,有人可以给我一个安全限制的建议吗?

例如,我将其用于限制:

$id = $_SESSION['id'];
$queryget = mysql_query("SELECT * FROM users WHERE id='$id'"); 
$row_12 = mysql_fetch_assoc($queryget);
$admin = $row_12['admin_id'];
$ruka = $row_12['rukovoditelj'];


if($row_12['admin_id'] > 1)
{
    header('Location: dosjei.php');
}
4

2 回答 2

6

假设您在之后停止执行脚本是安全的(例如退出;命令)。

header("Location: dosjei.php");
exit;

当然,您需要在脚本开头进行验证,然后才能在页面上写入一些您需要隐藏给未经授权的用户的数据。

于 2012-05-07T14:50:39.067 回答
3

是的,它是安全的。但前提是你之后退出。这样,即使用户不尊重Location标题,他仍然无法看到任何内容。类似于以下内容:

if ($row_12['admin_id'] < 1) {
    header("Location: dosjei.php");
    die();
}

display_content_for_authorized_users(); //Would never be reached if $unauthorized is true.
于 2012-05-07T14:53:41.117 回答