关于用户防御,我们一直强调的是意识为先。从我们进行的攻击测试中发现,很多人对Web前端攻击不了解。
下面介绍一下我们自己是如何防御变化多端的Web前端攻击的。
1. 使用安全浏览器组合:Firefox浏览器+NoScript插件
NoScript插件由Web前端安全牛人Giorgio Maone主力研发,众多该领域牛人的贡献可谓是安全插件的精品,能防御DOM与反射型XSS、ClickJacking,能强制进行HTTPS请求等,还能默认拦截所有网站的JavaScript、Flash、Java等。如果我们相信某个网站,就可以加入白名单,下次就不会再拦截,这个好处是,默认就阻止了攻击者放在不可信域上的攻击脚本,从阻止信息中可以看到是哪些域的脚本被拦截了,这样有利于我们定位判断是否是可疑的攻击,如图10-3所示的拦截。
图10-3 NoScript拦截提示
除了这些,还有一个非常强大的功能:ABE(Application Boundaries Enforcer),其实这个思想和前面介绍的CSP有一些相似之处。ABE依据一套用户自定义的规则,能非常清晰地明确网站的边界,这样就能有效防御针对这个网站的ClickJacking攻击、CSRF攻击等。如果想禁止针对*.baidu.com的来自任何外域的请求,在NoScript→选项→高级→ABE菜单中,自定义规则如下:
Site *.baidu.com Accept GET POST from SELF Deny
外域来的任何请求都会被拦截,如图10-4所示。
图10-4 NoScript ABE拦截提示
2. 遵守信任最小原则
对这些原则其实不用严格执行,适当遵循它们,被攻击的概率就会小很多。
Web前端攻击千变万化,相信读者学会本书介绍的知识后,判断前端攻击的难度会大大降低。