使用标题('位置:')足以密码保护页面?

时间:2013-02-20 02:34:29

标签: php

基本上,我正在检查用户是否已登录,如果没有,我将使用header('location:login.php')重定向到登录页面。

如果浏览器实际上是重定向或服务器,我很困惑?如果是浏览器那么用户是否可以阻止浏览器重定向并查看页面内容?

4 个答案:

答案 0 :(得分:0)

是的,它不是重定向的浏览器,而是将PHP发送到浏览器之前。

请确保在exit()来电后使用header,并且在header来电之前没有任何内容输出到浏览器。

答案 1 :(得分:0)

如果“足够”,则表示信息不会暴露给未经过身份验证的任何人,即使他们嗅探网络流量,那么您必须简单地不将响应正文中的信息发送给任何非 - 经过认证的请求。

这样的事情应该足够了:

header('location: login.php');
exit; // make sure not to echo anything in the body

它将导致浏览器接收HTTP标头并启动对login.php的全新请求,同时不会泄露响应中的任何敏感信息。

答案 2 :(得分:0)

好吧,保持简单,检查特定变量并根据它,决定重定向/显示内容是可以的......这样的事情对你有用..

if(your condition){
header(Location: login.php)
exit() or die() ;
}else{
show contents.....}

答案 3 :(得分:-1)

服务器正在重定向。客户端浏览器被定向到服务器通过标头修改发送的页面。用户无法阻止从页面重定向,但 能够在该行重定向代码标头('location:login.php')之后看到内容;

// print to error log before and after header redirect to show code is executed after the redirect
error_log("before redirect");
header('location: login.php');

// this will get get executed.  To prevent, exit() script immediately after the header redirect
error_log("after redirect");