在我的项目中的每个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
之外,您还可以将 exit
或 die
语句用于基本脚本。
这将是安全的,但是当您使用纯HTTP时,cookie和会话很容易在LAN中被"劫持"。因此,强制您的应用程序服务器使用 HTTPS