[英]Can document.referrer be forged?
情况:我们有一个小部件,希望允许在受信任的站点上进行格式化。 为了减轻潜在的Clickjacking攻击,我们希望在窗口小部件根据域白名单加载时检查引荐来源网址。 没有匹配项=禁用小部件。
我知道使用Flash可以发送带有任何Referer标头的任意HTTP请求。 难道document.referrer同样容易受到攻击吗?
注意:我知道用户可以更改设置,而其他情况可以使document.referrer为空白。 那也行。 如果窗口小部件始终处于工作状态,那么它的重要性要比不可靠的窗口小部件重要。
编辑:X-Frame-Options目前无法使用,因为在Chrome或Safari中未实现ALLOW-FROM。 我需要能够支持第三方域名。
是。 您可以从字面上做到:
document.referrer = "http://foobar.com";
如果只想让您的网站在受信任的网站上进行格式化,则可以使用X-Frame-Options
HTTP响应标头。
编辑:如果需要在不完全支持X-Frame-Options的浏览器上进行此工作,则需要更复杂的方法,即“外部”站点与托管iframed站点的服务器进行通信以请求一次性令牌绑定到客户端IP地址,并使用该地址批准/拒绝访问。
众所周知,例如,您可以通过数据URI来清除Referer标头和document.referrer。 只要您不允许undefined
document.referrer,就不会给攻击者带来任何意外的访问。
您还要在问题中声明Flash可以使用攻击者控制的Referer标头发出请求。 但是,在这种情况下,他们将无法将响应呈现为服务器原始中的文档。 他们将无法对此进行任何点击劫持攻击。 也许CSRF。
如果请求是通过iframe发送的,则浏览器将发送正确的引荐来源网址。
document.referrer
一个小问题是,您必须从URL字符串中找出它是哪个域。 您必须谨慎操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.