将PHP标头()& exit()在重定向之前安全地终止脚本?

时间:2010-05-16 17:39:57

标签: php

以下是保护仅用户区域的安全方法吗?

if(!isset($_SESSION['username'])){redirect(SITE_ROOT . 'st_pages/login/');}

使用:

function redirect($url)
    {
        header('Location: ' . $url);
        exit('<a href="' . $url . '">Redirecting you to: ' . $url . '</a>');
    }

3 个答案:

答案 0 :(得分:4)

是的,这是安全的

虽然header()没有终止任何东西,但exit()确实终止了一个脚本。这是此功能的唯一目的

答案 1 :(得分:0)

重定向部分可以通过这种方式完成,并且应该是安全的。

有趣的问题是,只检查会话中的用户名是多么安全。这取决于脚本的前几行。

第二个有趣的问题当然是,未经授权访问该区域的重要性以及您希望投入多少工作用于安全性。

答案 2 :(得分:0)

我通常使用:

<?php
die(header("Location: page.php"));
?>

这是否是最好的事情,我不做任何断言!另外,正如b_i_d所说,我个人不会通过检查用户名来检查会话,因为它不完全安全......会话是否可以编辑?通常情况下,我会存储用户名和密码(当然是MD5),然后针对数据库运行,以查看是否存在包含这些详细信息的记录。