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

时间:2010-06-27 21:16:56

标签: php security

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

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

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

3 个答案:

答案 0 :(得分:8)

Abra kadabra

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

答案 1 :(得分:5)

ob_end_clean调用后添加exitheader,以防止进一步执行/输出:

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

答案 2 :(得分:1)

您应该在IF中制作所有脚本内容。

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