点击劫持
# 点击劫持 (ClickJacking)
点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用将不知情的情况下点击透明的iframe页面。通过调整iframe的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
- Flash点击劫持
- 图片覆盖攻击
- 拖拽劫持与数据窃取
- 触屏劫持touchstart、touchend、touchmove、touchcancel
# 防御ClickJacking
- frame busting禁止iframe嵌套
if(top.location =!= location){ top.location = self.location };
1
详见p136页;但是frame busting存在一些缺陷。由于它使用javascript写的,控制能力并不是特别强,因此有很多方法可以绕开它。比如多个iframe嵌套,HTML5中iframe的sandbox属性、IE中的iframe的security属性等,都可以限制iframe页面的javascript执行。
2. X-Frame-Options(http头)
当值为DENY时,浏览器会拒绝当前页面加载任何frame页面;若值为SAMEIRIGIN,则允许加载同源域名下的页面;若为ALLOW-FROM,则可以定义允许frame加载的页面地址。
除此之外,FireFox的“Content Security Policy”以及FireFox的NoSript扩展也能够有效防御ClickJacking,这些方案为我们提供了更多选择。
在Github上编辑此页 (opens new window)
上次更新: 3/22/2021, 3:47:15 AM