Rob*_*Rob 66 firefox google-chrome x-frame-options clickjacking
我正在实施一个"传递",X-Frame-Options
让合作伙伴网站将我的雇主的网站包装在iframe中,如本文所述:http://blogs.msdn.com/b/ieinternals/archive/2010/03/30 /combating-clickjacking-with-x-frame-options.aspx
(将URL分拆为帖子)
简而言之,我们的合作伙伴页面上有一个iframe,其中包含针对我们域名的网址.对于我们域中的任何页面,他们都会添加一个特殊的url参数&@mykey=topleveldomain.com
,告诉我们页面的顶级域名是什么.
我们的过滤器从URL中获取合作伙伴TLD(如果提供),并根据白名单对其进行验证.如果它在列表中,我们将X-Frame-Options
带有值的标头发送ALLOW-FROM topleveldomain.com
(并为将来的点击添加一个cookie).如果它不在我们的白名单上,我们发货SAMEORIGIN
或DENY
.
问题是,ALLOW-FROM domain
对于最新的Firefox和谷歌浏览器,整体上的结果似乎是无差异.至少,IE8似乎正在正确实施ALLOW-FROM
.
看看这个页面:http: //www.enhanceie.com/test/clickjack.在"应该显示内容"的第5个(第5个)框之后,是一个不应该显示内容的框,但是.在这种情况下,iframe中的页面正在发送X-Frame-Options: ALLOW-FROM http://www.debugtheweb.com
,与TLD完全不同http://www.enhanceie.com
.然而,框架仍然显示内容.
是否X-Frame-Options
真正实现ALLOW-FROM
跨相关(桌面)浏览器的任何见解?也许语法已经改变了?
一些感兴趣的链接:
Kin*_*lan 38
Chrome或Safari不支持ALLOW-FROM.请参阅MDN文章:https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
您已经在做一个自定义标题并使用正确的数据发送它的工作,当您检测到它来自有效的合作伙伴并且将DENY添加到其他所有请求时,您是否只能排除标题?当你已经动态构建逻辑时,我没有看到AllowFrom的好处?
Rob*_*Rob 21
我发布了这个问题,从未看到过反馈(几个月之后出现,似乎:).
正如Kinlan所提到的,ALLOW-FROM在所有浏览器中都不支持作为X-Frame-Options值.
解决方案是基于浏览器类型进行分支.对于IE,运送X-Frame-Options.对于其他人,请发布X-Content-Security-Policy.
希望这会有所帮助,并且抱歉花了这么长时间来关闭循环!
对于Chrome,而不是
response.AppendHeader("X-Frame-Options", "ALLOW-FROM " + host);
Run Code Online (Sandbox Code Playgroud)
你需要添加 Content-Security-Policy
string selfAuth = System.Web.HttpContext.Current.Request.Url.Authority;
string refAuth = System.Web.HttpContext.Current.Request.UrlReferrer.Authority;
response.AppendHeader("Content-Security-Policy", "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: *.msecnd.net vortex.data.microsoft.com " + selfAuth + " " + refAuth);
Run Code Online (Sandbox Code Playgroud)
到HTTP-response-headers.
请注意,这假设您在服务器上检查了是否允许refAuth.
另外,请注意,您需要进行浏览器检测,以避免allow-from
为Chrome 添加标头(在控制台上输出错误).
有关详细信息,请参阅我的答案.
归档时间: |
|
查看次数: |
171323 次 |
最近记录: |