根据这篇文章,我正在实施“传递”,X-Frame-Options
让合作伙伴网站将我雇主的网站包装在 iframe 中:http: //blogs.msdn.com/b/ieinternals/archive/2010/03/30 /combating-clickjacking-with-x-frame-options.aspx
(拆分 URLS 发布)
简而言之,我们合作伙伴的页面有一个 iframe,其中包含针对我们域的 URL。对于我们域中的任何页面,他们都会添加一个特殊的 url 参数,例如&@mykey=topleveldomain.com
,告诉我们页面的顶级域是什么。
我们的过滤器从 URL 中提取合作伙伴 TLD(如果提供),并根据白名单对其进行验证。如果它在列表中,我们会发送X-Frame-Options
带有值的标题ALLOW-FROM topleveldomain.com
(并添加一个 cookie 以供将来点击)。如果它不在我们的白名单上,我们会发货SAMEORIGIN
或DENY
.
ALLOW-FROM domain
问题在于,对于最新的 Firefox 和 Google Chrome,它看起来像是以无操作的方式发送结果。至少,IE8 似乎正确地实现了ALLOW-FROM
.
查看此页面: http ://www.enhanceie.com/test/clickjack 。在“应该显示内容”的第 5 个(共 5 个)框之后,是一个不应该显示内容的框,但它是。在这种情况下,iframe 中的页面正在发送X-Frame-Options: ALLOW-FROM http://www.debugtheweb.com
一个与http://www.enhanceie.com
. 然而,框架仍然显示内容。
X-Frame-Options
关于是否真正ALLOW-FROM
跨相关(桌面)浏览器实现的任何见解?也许语法已经改变?
一些感兴趣的链接:
- 关于 x-frame-options 的 rfc 草案:https ://datatracker.ietf.org/doc/html/draft-gondrom-frame-options-01
- developer.mozilla 文章将标头讨论为 2-option 标头(sameorigin 或 deny)。 https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
- 发起整个事情的 msdn 博客:http: //blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx
- 讨论 3 个值的 msdn 博客:添加 allow-from origin http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx