【问题标题】:Iframes and Same-Origin-Policy and reverse proxy hackiframes 和 Same-Origin-Policy 和反向代理 hack
【发布时间】:2015-03-29 00:47:19
【问题描述】:

我一直在阅读具有不同域的 iframe,然后是父文档,我有点困惑。

我了解,如果 iframe 与其父文档来自同一个域,则父文档可以访问 iframe 的文档。看来我可以通过以下 hack 来规避这个问题:

  1. 我在mydomain.com 设置了一个网络服务器
  2. 我提供来自mydomain.com/index.html的原始页面
  3. 我在我的网络服务器上为mydomain.com/othersite -> site2.com 设置了一个代理
  4. <iframe src="mydomain.com/othersite"> 添加到mydomain.com/index 页面

这似乎会绕过同源策略,用户也不会更聪明。有什么我遗漏的吗?

【问题讨论】:

    标签: html security iframe same-origin-policy


    【解决方案1】:

    是的,你缺少一些东西。

    同源策略保护网站访问的客户端。

    如果您将mydomain.com/othersite 设置为代理到site2.com,则浏览器不会将site2.com 的用户cookies 发送到您的站点mydomain.com。您将得到的只是您的网站在mydomain.com 上为该用户设置的cookie。也就是说,您要攻击的只是您与site2.commydomain.com 会话,而不是与site2.com 的用户会话(因为您的反向代理实际上使mydomain.com 成为此连接的客户端)。

    如果有办法规避同源策略,这必须是客户端的东西,才能让浏览器将 cookie 发送到您的域。

    我意识到我在这里专注于 cookie,但是 cookie 是一个易于理解的概念,它是同源策略保护的客户端对象示例。您的方法允许您操作 site2.com 的 DOM,但它不会在访问者访问 site2.com 的上下文中,而是在您自己访问 @987654332 的上下文中@ - 访问者访问的任何内容都无法更改,除非他们足够信任您的网站以直接登录代理版本 site2.com

    【讨论】:

    • 很好的答案。谢谢。
    猜你喜欢
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多