分解为 SESSION 变量


breaking into SESSION variable

在我的项目中的每个PHP文件中,我都使用以下代码,以便没有人可以在不登录的情况下进入网站:

<?php
    session_start();
    if($_SESSION['userid']!="myuserid"){
        header("Location: Adminlogon.php");
    }
?>

请注意,我只需要一个用户 ID,用户 ID 和密码在一群人之间共享。

此代码安全吗?我能做得更好吗?

你的代码是不安全的,因为实际上它不会阻止每个脚本的执行 - 这是你真正想要阻止的。

为了防止在会话设置不正确时执行,您需要保留文件,例如使用 return 语句:

<?php
    session_start();
    if ($_SESSION['userid'] != "myuserid")
    {
        header("Location: Adminlogon.php");
        return; ### leave this script/include
    }
?>

除了return之外,您还可以将 exitdie 语句用于基本脚本。

这将是安全的,但是当您使用纯HTTP时,cookie和会话很容易在LAN中被"劫持"。因此,强制您的应用程序服务器使用 HTTPS