session_start(),ob_start()和安全性问题

The*_*one 2 php security

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

session_start(); ob_start();
if(!isset($_SESSION['user'])){
    header("Location: login.php");
}
contents...
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

是的,这是完美的工作,重定向到登录页面.但漫画的一点是,我可以看到index.php的内容(那保护!!!)这里有 什么问题?

Rob*_*bus 8

阿布拉卡达布拉

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

  • *耸肩*,浏览器无论如何都看不到这个,因为你被重定向了.如果有人狡猾然后......好吧,你只是告诉他迷路,因为他总是应该:P (2认同)

Gum*_*mbo 5

把一个ob_end_cleanexitheader调用,以防止任何进一步的执行/输出:

if (!isset($_SESSION['user'])) {
    header("Location: login.php");
    ob_end_clean();
    exit;
}
Run Code Online (Sandbox Code Playgroud)