跨站脚本攻击(Cross site Scripting),攻击者利用我们前后端没有做好代码转义从而执行了攻击者所写的代码。
原理?
- 反射型XSS攻击:攻击者把恶意代码拼接在URL上诱导用户打开并执行。常见的是超链接跳转、搜索等,预防这类攻击主要在于取url字段,或者渲染超链接时,内联JS事件都需要做特定的针对性的转义处理。
- 存储型XSS攻击:攻击者利用可提交的输入框或表单把攻击代码提交至数据库存储,下次打开网页读取数据加载并执行了攻击代码,可在前后端都做指定字符的错误提示或转义进行防范
如何避免?
- 入参字符过滤,例如过滤掉<script>、<a>等DOM标签
- 出参进行编码,对一些特殊字符进行编码转化(encodeURIComponent)
- 入参长度限制,xss攻击要能达成往往需要较长的字符串
- 设置cookie httponly为true,通过document.cookie只能获取到设置为false的信息