【问题标题】:what is other option for HTTP_REFERER in php?php 中 HTTP_REFERER 的其他选项是什么?
【发布时间】:2011-02-26 05:57:00
【问题描述】:
我想知道 $_SERVER['HTTP_REFERER'] 是否有任何选项/工作环境。因为“HTTP_REFERER”不能被信任。
那么还有什么其他方法可以知道请求来自哪个url?。
情况是这样的——
http://abc.com/one.html 会有一个 src=http://xyz.com/giv.php?param=1 的 iframe。
xyz.com 上的 giv.php 如何知道请求来自 http://abc.com/one.html?
【问题讨论】:
标签:
php
html
http-referer
【解决方案2】:
这看起来可能是X-Y problem。
如果 X 是
如何阻止未经授权的网站对我的内容进行框架化并将其呈现给毫无戒心的用户?
那么referer就“足够好”了。
要伪造referer,用户必须参与。未经授权的网站无法告诉用户的浏览器发送虚假的referer。
【解决方案3】:
如果你真的想要信任,那么:
- 服务器和浏览器之间的所有通信都需要通过 HTTPs 完成
- abc.com 需要从 xyz.com 请求唯一标识符令牌(可能在消息中包含客户端 IP 地址,但请注意某些客户端循环使用 IP 地址)
- 该令牌需要包含在 iframe 的 xyz.com URL 中(例如,在查询字符串中),以便服务器可以对其进行身份验证
即便如此,令牌仍可能被用户泄露(有意或通过安装在其系统上的恶意软件)。