这是我参与「第四届青训营 」笔记创作活动的第四天
XSS攻击的防御
永远不要相信用户提交的内容,不要将用户提交的内容直接转换成DOM。使用前端主流框架google-closure-libarary和服务端的DOMPurify来构成防御。也就是要过滤用户提交的所有内容,再对动态输出的页面的内容进行html编码,使恶意脚本代码无法在浏览器种执行。
CSRF的防御
-
通过请求头部的Origin和Referer来判断是否有恶意代码,Referer字段记录了HTTP请求的来源地址,如果攻击者不是使用白名单种的网站访问被攻击网址,就会被识别成出现恶意攻击。
-
攻击者有很大可能会使用cookie中保存的用户信息来实现网站的安全验证,通过使用token,在用户使用向网站发起HTTP请求时以参数的形式加入一个随机的token,并在服务器建立拦截器验证token内容,如果token内容不正确或者请求不携带则会被认为是CSRF攻击而拒绝请求。
注入防御
- SQL注入使用最小权限原则,建立允许名单和过滤,对URL类型参数进行协议,域名,ip等限制
Dos防御
- Code Review:尽量使用非贪婪匹配
- 代码扫描与正则性能测试
- 不使用用户提供的正则