如果你被面试官问到这个问题,不要急于描述自己遇到的问题以及如何处理的,你得先去理解问题中的潜台词。“做过哪些措施”更深层的意思是“你熟悉哪些攻击方式,知道哪些解决方案?”当然,不可能把每次做的安全防范措施都一一的说给面试官听,这样显得没有重点。
「做哪些安全防范」换个思维思考“有哪些攻击方式?”,那么我们就可以基于攻击方式的分类,来讨论究竟有哪些防范攻击的措施。
从而可以梳理出关于这个问题回答的思路:
XSS攻击按照之前说的思路,先讲概念,说用途
什么是XSS攻击XSS即CrossSiteScripting(跨站脚本攻击),指的是攻击者想尽一切办法将一些可执行的代码注入到网页中,利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID等,进而危害数据安全。为了不和层叠样式表CSS混淆,故将其缩写为XSS
XSS可以分为:存储型XSS(也叫持久型XSS)、反射型XSS(也叫非持久型)。
存储型存储型也就是攻击的代码被服务端写入进数据库中,这种攻击危害性很大,因为如果网站访问量很大的话,就会导致大量正常访问页面的用户都受到攻击。
这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。具有攻击性的脚本被保存到了服务器并且可以被普通用户完整的从服务的取得并执行,从而获得了在网络上传播的能力。
反射型反射型也叫非持久型,相比于前者危害就小一些,一般通过修改URL参数的方式加入攻击代码,诱导用户访问链接从而进行攻击。
这种常见于通过URL传递参数的功能,如网站搜索、跳转等。由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击。
二者区别:存储型XSS的恶意代码存在数据库里,反射型XSS的恶意代码存在URL里。
举两个案例帮助更好的理解:当我们在做商品评论时,用户输入的内容未经过过滤直接保存到数据库中。
攻击者可以构建一条评论,包含恶意内容:
质量非常不错!scriptsrc="danger.