我使用这个Javascript代码,它工作得很好:
if (top.location != location) top.location.href = location.href
许多研究人员告诉我不要用这个。
有人能绕过它吗?
如果是的话,使用这个有什么风险?
其中一人告诉我,攻击者可以重新定义location变量:
变量位置= 'foo';
但在谷歌Chrome中,这似乎行不通
发布于 2015-07-18 05:38:03
你说的是ClickJacking攻击。(标题在我编辑之前不一样)
有人能绕过它吗?
是的,当将页面加载到iframe中时,可以绕过这一点。不幸的是,我目前还没有代码。但是,可以做的是在加载iframe时禁用javascript。这将绕过你的帧破坏代码。(在我看来,不存在破坏帧的代码)
是否需要使用X帧选项来防止ClickJacking攻击?
对于较新的浏览器,这是防止ClickJacking攻击的标准。我认为没有理由不使用它,因为为每个响应添加额外的头非常简单。
其中一个告诉我,攻击者可以重新定义位置变量: var location = 'foo';
因为并不是所有的代码都显示出来,所以很难说这是否是可利用的。我从这一行代码中唯一能看到的是,攻击者可以通过修改变量位置来攻击自己的浏览器,这是无用的。
发布于 2015-07-18 06:44:13
有人能绕过它吗?
是。这可以是一个带有sandbox属性的属性。使用此属性,可以禁用iframe中Javascript的执行,因此不会执行框架破坏代码。此外,一些客户端可能会禁用Javascript的执行,就像使用NoScript浏览器扩展时一样。
有关更多信息,请参见https://en.wikipedia.org/wiki/Framekiller和对框架破坏方法的科学比较以及如何使它们失败,请参阅http://crypto.stanford.edu/~dabo/pubs/papers/framebust.pdf。
https://security.stackexchange.com/questions/94305
复制相似问题