2009-12-03 57 views

回答

3

它实际上是完全一样的。两种方法都意味着信息在HTTP查询中传递,这很容易被伪造。所以你不能真正相信一种方法比另一种方法更多。这就是说,只要你不依赖这些信息来实现真正重要的事情,你可以承认引用者是可信的,因为伪造比查询字符串参数要复杂一点。至少对于普通用户来说。

最好的解决方案是,如果您需要信任某些重要的信息,那么将其作为会话变量存储在服务器上。在检查之前的值是什么之后,每个页面都会存储它的URL。

0

那么,HTTP_REFERER可以被一些客户端剥离出来..我似乎记得一些诺顿网络安全产品做到了,可能其他人也这样做。因此,在会话中设置上一页并将其用于重定向会更加可靠。

+0

GET方法呢? – Gal 2009-12-03 16:23:31

0

如果你可以使用它,session是一个更安全的选择。从GET或者甚至头部发回用户可以让狡猾的人可能会滥用你的代码中的任何缺陷来做可能的事情。

头部本身也可能被某些防火墙软件删除。

0

我不认为在这种情况下使用GET时会出现问题。你不能总是依赖于能够从浏览器中检索引用。

2

如果您使用$_SESSION,如果用户打开多个窗口/选项卡并同时执行不同的操作,将会出现问题。没有什么比只能拥有网站的窗口更烦人了。

您可以将该值存储在SESSION变量中,并通过一个简短密钥进行标识。该密钥进入GET字符串。这样,您就可以保持网址清洁,并且不会冒许多服务器对GET参数具有1024字节限制的风险。

相关问题