我想知道阻止人们通过直接链接访问管理页面的最有效方法是什么。我目前正在做的是当用户登录时,将设置一个会话,并在页面上检查它是否设置。
这是在登录时传递的:
$_SESSION['lo'] = 1;
这会在管理页面上检查会话:
session_start();
if (!isset($_SESSION['lo']))
header("Location: ,./login.php");
这是最有效的方式吗?还有其他方法吗?我可以想象你可以以某种方式滥用这个会话来获得未经授权的访问。这是我想要阻止的。
答案 0 :(得分:1)
最好使用ACL,但最简单的方法是
$sess_prefix = 'app1';
if(!isset($_SESSION[$sess_prefix.".username"])){
header("Location: index.php");
}
或
session_start();
// Check if user is logged in
if(!isset( $_SESSION['user_id'] ))
{
// User is not logged in
$_SESSION['message'] = 'You\'re not logged in';
// redirect to home page
header('Location: \');
exit;
}