PHP - 如何通过直接链接防止未经授权访问管理面板?

时间:2016-11-15 09:54:35

标签: php

我想知道阻止人们通过直接链接访问管理页面的最有效方法是什么。我目前正在做的是当用户登录时,将设置一个会话,并在页面上检查它是否设置。

这是在登录时传递的:

$_SESSION['lo'] = 1;

这会在管理页面上检查会话:

session_start();
if (!isset($_SESSION['lo']))
   header("Location: ,./login.php");

这是最有效的方式吗?还有其他方法吗?我可以想象你可以以某种方式滥用这个会话来获得未经授权的访问。这是我想要阻止的。

1 个答案:

答案 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;
}