Php 会话_start()、ob _start()和安全性问题

Php 会话_start()、ob _start()和安全性问题,php,security,Php,Security,在我的web管理区域中,我使用了非常简单的逻辑: session_start(); ob_start(); if(!isset($_SESSION['user'])){ header("Location: login.php"); } contents... ob_end_flush(); 是的,这是完美的工作,重定向到登录页面。但有趣的是,我可以看到index.php(受保护的!!!)的内容 怎么了?在调用后放置and,以防止进一步执行/输出: if (!isset($_SESSIO

在我的web管理区域中,我使用了非常简单的逻辑:

session_start(); ob_start();
if(!isset($_SESSION['user'])){
    header("Location: login.php");
}
contents...
ob_end_flush();
是的,这是完美的工作,重定向到登录页面。但有趣的是,我可以看到index.php(受保护的!!!)的内容 怎么了?

在调用后放置and,以防止进一步执行/输出:

if (!isset($_SESSION['user'])) {
    header("Location: login.php");
    ob_end_clean();
    exit;
}
艾布拉·卡达布拉

if(!isset($_SESSION['user'])){
    header("Location: login.php");
    die("GET LOST YO");
}

您应该在IF中创建所有脚本内容

session_start(); 
ob_start();
if(isset($_SESSION['user'])){
    contents...
}
else {
    header("Location: login.php");
ob_end_flush();

没有消息会更好,但是删除脚本很容易解决问题。耸耸肩,浏览器无论如何都不应该看到这个,因为你被重定向了。如果有人偷偷摸摸的话。。。好吧,你刚刚告诉他要迷路,他应该一直迷路:尽管在这种情况下没关系,但在网站的任何地方使用
die()
都不是一个好主意。和什么一样?你在说什么?