我正在使用$ _SERVER ['HTTP_REFERER']来生成动态反向链接.
Return to..blah
这样做是否合理安全?
不是这样的.
它可能不存在.(这可能是错的,一些个人防火墙软件包出于隐私原因而混淆了引用者,一路上违反了HTTP规范)
您应该运行来自系统外部的任何东西来htmlspecialchars
防范XSS攻击(尽管IIRC,引用者不应该有任何危险的角色,因为它们应该是URL安全的,你应该养成一直保持谨慎的习惯).
浏览器虽然带有后退按钮,但是没有必要尝试复制它们的功能(特别是当用户单击标记为"返回"的链接时,它不会将它们带回历史记录中,因此单击正常后退按钮将在概念上将它们向前推进).
它可能是安全的,但它不可靠:由于HTTP规范,HTTP_REFERER
是可选的(一些客户端根本不发送这个头,一些"安全"软件从任何HTTP请求中删除它),并且有很多修改此标头的方法.有些浏览器发送引用页面,有些发送空字符串,有些根本不发送,有些可能发送伪造数据,有些可能发送Matilda姨妈; 而且,您无法判断是否在此标头中获得了有效数据.
所以,不,我永远不会相信HTTP_REFERER
包含上一页,你也不应该.