1

我想知道 $_SERVER['HTTP_REFERER'] 是否有任何选项/工作环境。因为“HTTP_REFERER”不能被信任。那么还有什么其他方法可以知道请求来自哪个url?

情况如下 - http://abc.com/one.html 将有一个 iframe,其 src=http://xyz.com/giv.php?param=1。xyz.com 上的 giv.php 如何知道请求来自 http://abc.com/one.html?

4

3 回答 3

4

对不起,没有别的办法。欢迎来到互联网

于 2010-06-01T08:10:46.783 回答
3

这看起来可能是XY 问题

如果 X 是

如何阻止未经授权的网站构建我的内容并将其呈现给毫无戒心的用户?

那么推荐人“足够好”。

要伪造referer,用户必须参与。未经授权的网站无法告诉用户的浏览器发送虚假的referer。

于 2010-06-01T08:16:07.590 回答
1

如果你真的想要信任,那么:

  • 服务器和浏览器之间的所有通信都需要通过 HTTPs 完成
  • abc.com 需要从 xyz.com 请求一个唯一标识符令牌(可能在消息中包含客户端 IP 地址,但请注意某些客户端循环 IP 地址)
  • 该令牌需要包含在 iframe 的 xyz.com URL 中(例如,在查询字符串中),以便服务器可以对其进行身份验证

即使这样,令牌也可能被用户泄露(有意或通过安装在他们系统上的恶意软件)。

于 2010-06-01T08:13:11.780 回答