标头重定向的安全性如何?它可以绕过吗


How secure is a header redirect? Can it be bypassed?

标头重定向的安全性如何?据我所知,标题信息指示浏览器该做什么。因此,如果标题位置设置在其他位置,浏览器还能在初始页面上着陆吗?

if(!$loggedin){
header('Location: someotherpage.php')
}

如果有人(咳嗽咳嗽)忘记在标题后使用退出命令,有人还能在那一页上着陆吗?

如果有人(咳嗽咳嗽)忘记在标题后使用退出命令,有人还能在那一页上着陆吗?

当然,忘记exit()意味着客户端仍然可以看到在这些行之后发出的任何数据,而不是在那个页面上着陆(他已经有了)。任何人都不能强制客户端在收到Location:标头后立即离开。这种行动完全是自愿的。

当然。这就是为什么在您希望避免显示非法信息的情况下,重定向后应该跟随(或退出)else。如果使用自定义请求,他们可以很容易地查看重定向请求后的内容,这是一个非常标准的安全问题。

是。仍然可以登录到该页面,但不能强制使用"位置"。如果页面抛出"已发送的标头"错误,也可能"意外"加载页面的其余部分。在发送header('Location...')之后使用exit;是一种良好的做法。

请参阅PHP函数:headers_sent