【问题标题】:Can i restrict what parent (html only) access my child iframe(PHP) which is on different domain?我可以限制哪些父(仅限html)访问我在不同域上的子iframe(PHP)吗?
【发布时间】:2012-11-12 18:58:42
【问题描述】:

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

问题是这样的: 我如何检查 iframe.com 是否仅由父级加载并且不能由其他域进行 iframe

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

【问题讨论】:

  • 您可以检查托管 parent.com 的服务器的 IP 地址(我相信它是 $_SERVER['REMOTE_HOST'])。当然,服务器上也可以有其他站点,所以不是很安全。
  • @alex.ac — 怎么样?这是一个 iframe。请求来自客户端,而不是带有 iframe 的站点的服务器。
  • 对不起,你没看错,是客户端的IP。看来referer是唯一的选择。
  • 如果您可以选择使用 .htaccess 文件,那么也许这也很有用:stackoverflow.com/questions/5224286/…

标签: html cors verify


【解决方案1】:

referer 在进入真正复杂的领域之前尽可能接近。

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

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

以下可能工作......

  1. iframe.example.com 使用服务器端代码从 framed.example.net 请求令牌,请求包括浏览器的 ip 地址和授权 iframe.example.com 到 framed.example.net 的密码李>
  2. framed.example.net 生成一个令牌并将其提供给 iframe.example.com,将其注册到浏览器的 IP 地址
  3. iframe.example.com 使用查询字符串中的令牌生成 URI,并将其用作 iframe 的 src
  4. framed.example.net 检查令牌是否存在,并且记录中的 ip 地址与请求来自(浏览器)的 ip 地址相匹配

当浏览器没有一致的 IP 地址时(例如在一组代理服务器后面,我记得这在蜂窝宽带中很常见),这会产生误报,所以我不推荐它.

【讨论】:

    猜你喜欢
    • 2014-05-30
    • 2023-03-11
    • 1970-01-01
    • 2010-11-24
    • 2019-06-17
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多