我是否可以限制哪位家长(仅限html)访问位于不同域上的子iframe(PHP)?

我是否可以限制哪位家长(仅限html)访问位于不同域上的子iframe(PHP)?,html,cors,verify,Html,Cors,Verify,情景是这样的: Parent.com可以有一个“仅html”文件 它有iframe和iframe.com(我有full\controll的php) 问题是: 如何检查iframe.com是否仅由父级加载,而不能由其他域加载 编辑:一些解决方案建议检查推荐人,但这可能会被欺骗。referer在进入非常复杂的领域之前,它是你能得到的最接近的 虽然它可以被欺骗,但它只能被客户端欺骗。第三方网站无法使客户端欺骗它 也就是说,referer是可选的。浏览器不必发送它,而且在很多情况下(例如通过HTTPS发

情景是这样的: Parent.com可以有一个“仅html”文件 它有iframe和iframe.com(我有full\controll的php)

问题是: 如何检查iframe.com是否仅由父级加载,而不能由其他域加载


编辑:一些解决方案建议检查推荐人,但这可能会被欺骗。

referer
在进入非常复杂的领域之前,它是你能得到的最接近的

虽然它可以被欺骗,但它只能被客户端欺骗。第三方网站无法使客户端欺骗它

也就是说,
referer
是可选的。浏览器不必发送它,而且在很多情况下(例如通过HTTPS发送引用文档时),它们也不必发送

以下方法可能有效

  • iframe.example.com使用服务器端代码从framed.example.net请求令牌,该请求包括浏览器的ip地址和授权iframe.example.com访问framed.example.net的密码
  • framed.example.net生成一个令牌并将其提供给iframe.example.com,并根据浏览器的ip地址进行注册
  • iframe.example.com使用查询字符串中的标记生成URI,并将其用作iframe的src
  • framed.example.net检查令牌是否存在,以及记录中的ip地址是否与请求来自的ip地址匹配(浏览器)

  • 当浏览器没有一致的ip地址时(例如在一组代理服务器后面,我似乎记得这在蜂窝宽带中很常见),这将产生误报,因此我不建议这样做。

    您可以检查托管parent.com的服务器的ip地址(我相信它是$_server['REMOTE_HOST')。当然,服务器上也可能有其他站点,因此不太安全。@alex.ac-如何?这是一个iframe。请求来自客户端,而不是带有iframe的站点的服务器。对不起,你是对的,这是客户端的IP。似乎只有referer选项。如果您可以选择使用.htaccess文件,那么这可能也很有用: