Iframes 和同源策略和反向代理 hack
Iframes and Same-Origin-Policy and reverse proxy hack
我一直在阅读与父文档不同域的 Iframe,我有点困惑。
我了解如果 iframe 与其父文档来自同一域,则父文档可以访问 iframe 的文档。看来我可以通过以下 hack 来规避此问题:
- 我在
mydomain.com
设置了一个网络服务器
- 我提供来自
mydomain.com/index.html
的原始页面
- 我在网络服务器上为
mydomain.com/othersite -> site2.com
设置了代理
- 将
<iframe src="mydomain.com/othersite">
添加到 mydomain.com/index
页面
这似乎可以规避同源策略,用户 none 会更明智。有什么我想念的吗?
是的,您缺少一些东西。
同源策略保护网站访问的客户端。
如果您将 mydomain.com/othersite
设置为代理到 site2.com
,则浏览器不会将 site2.com
的用户 cookie 发送到您位于 mydomain.com
的站点。您将获得的只是您的网站在 mydomain.com
上为该用户设置的 cookie。也就是说,您要攻击的只是您与 site2.com
的 mydomain.com
会话,而不是用户与 site2.com
的会话(因为您的反向代理有效地使 mydomain.com
成为此连接的客户端).
如果有办法规避同源策略,这必须是客户端才能让浏览器向您的域发送 cookie。
我意识到我在这里集中讨论了 cookie,但是 cookie 是同源策略保护的客户端对象示例的一个易于理解的概念。您的方法 将 允许您操纵 site2.com
的 DOM 但它不会出现在您的访问者访问 site2.com
的上下文中,它会在您自己访问 site2.com
的上下文中 - 访问者访问的任何内容都不能更改,除非他们足够信任您的网站以直接登录代理版本 site2.com
。
我一直在阅读与父文档不同域的 Iframe,我有点困惑。
我了解如果 iframe 与其父文档来自同一域,则父文档可以访问 iframe 的文档。看来我可以通过以下 hack 来规避此问题:
- 我在
mydomain.com
设置了一个网络服务器
- 我提供来自
mydomain.com/index.html
的原始页面
- 我在网络服务器上为
mydomain.com/othersite -> site2.com
设置了代理
- 将
<iframe src="mydomain.com/othersite">
添加到mydomain.com/index
页面
这似乎可以规避同源策略,用户 none 会更明智。有什么我想念的吗?
是的,您缺少一些东西。
同源策略保护网站访问的客户端。
如果您将 mydomain.com/othersite
设置为代理到 site2.com
,则浏览器不会将 site2.com
的用户 cookie 发送到您位于 mydomain.com
的站点。您将获得的只是您的网站在 mydomain.com
上为该用户设置的 cookie。也就是说,您要攻击的只是您与 site2.com
的 mydomain.com
会话,而不是用户与 site2.com
的会话(因为您的反向代理有效地使 mydomain.com
成为此连接的客户端).
如果有办法规避同源策略,这必须是客户端才能让浏览器向您的域发送 cookie。
我意识到我在这里集中讨论了 cookie,但是 cookie 是同源策略保护的客户端对象示例的一个易于理解的概念。您的方法 将 允许您操纵 site2.com
的 DOM 但它不会出现在您的访问者访问 site2.com
的上下文中,它会在您自己访问 site2.com
的上下文中 - 访问者访问的任何内容都不能更改,除非他们足够信任您的网站以直接登录代理版本 site2.com
。