Web安全之点击劫持

点击劫持是指在一个Web页面下隐藏了一个透明的iframe(opacity:0),用外层假页面诱导用户点击,实际上是在隐藏的frame上触发了点击事件进行一些用户不知情的操作。


clickjacking.png

危害:

  • 盗取用户资金
  • 获得用户的敏感信息
  • 与XSS或CSRF等其他攻击手段配合

防御方法:

1)Javascript中禁止内嵌

因为普通页面的top对象为window,而iframe的top对象不等于window对象,可以在JS代码中:

if (top.location !== window.location){
    top.location == window.location
}

这样如果存在嵌套的iframe,页面就会进行跳转,避免的点击劫持。
但是这种防御方式并不完善,如果攻击者设置ifame的属性sandbox="allow-forms" 时防御就失效。

2)X-FRAME-OPTIONS 防止内嵌

服务器端可设置HTTP头 "X-Frame-Options:DENY"来让浏览器主动禁止iframe内嵌
不过这种方式在HTTP中不可靠,黑客可以窃听篡改HTTP请求来修改HTTP头。

3)对于Firefox的用户,使用 NoScript 扩展

NoScript 能够在一定程度上检测和阻止点击劫持攻击。

4)其他辅助手段

如XSS和CSRF的防御方法,也可以防御点击劫持后对服务器端的攻击

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容