我正在实现一个“穿透”,针对
我们的过滤器从URL中提取并验证提供的合作伙伴TLD是否在白名单中。如果在列表中,我们将使用值为
问题在于最新版本的 Firefox 和 Google Chrome 发送
是否有任何深入了解
一些有用的链接:
X-Frame-Options
,让合作伙伴的站点在iframe中包裹我的雇主的站点,正如这篇文章所述:http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx
简而言之,我们合作伙伴的页面有一个针对我们域名的iframe URL。
对于我们域中的任何页面,他们都会添加一个特殊的url参数,例如&@mykey=topleveldomain.com
,告诉我们页面的顶级域是什么。我们的过滤器从URL中提取并验证提供的合作伙伴TLD是否在白名单中。如果在列表中,我们将使用值为
ALLOW-FROM topleveldomain.com
的X-Frame-Options
头(并添加一个cookie以供未来使用)。如果不在我们的白名单中,我们会发送SAMEORIGIN
或DENY
。问题在于最新版本的 Firefox 和 Google Chrome 发送
ALLOW-FROM domain
看起来结果是整体无操作。至少 IE8 正确地实现了 ALLOW-FROM
。请查看此页面:http://www.enhanceie.com/test/clickjack。在第五个(共 5 个)“应显示内容”的框后面,有一个不应该显示内容但却显示了内容的框。在这种情况下,iframe 中的页面正在发送 X-Frame-Options: ALLOW-FROM http://www.debugtheweb.com
,它与http://www.enhanceie.com
是完全不同的 TLD。 但是,frame 仍然显示内容。是否有任何深入了解
X-Frame-Options
在相关(桌面)浏览器中是否真正实现了 ALLOW-FROM
的见解?也许语法已更改?一些有用的链接:
- 草案rfc关于x-frame-options: https://datatracker.ietf.org/doc/html/draft-gondrom-frame-options-01
- developer.mozilla的文章讨论了该头作为2个选项头(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
- msdn博客谈到3个值:添加allow-from originhttp://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx