这是我参与第四届青训营笔记创作活动的第8天
从两个角度看待Web安全
加入你是一个hacker--攻击 加入你是一个开发者--防御
1.XSS攻击
特点:
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
存储型
反射型
基于DOM的攻击
基于Mutation的攻击
2.Cross
特点:
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定 HTTP 请求,窃取或修改用户敏感信息
3.Injection
特点:
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定 HTTP 请求,窃取或修改用户敏感信息
4.正则表达式-贪婪模式
特点
- 直接访问IP
- 任意API
- 消耗大量带宽
5.中间人攻击
6.防御-XSS
目前的主流框架都默认防御这种攻击。不过如果真有这种需求的话,就需要对对应的文件进行扫描了。也不要让用户自定义跳转链接。
1.解决方案
2.解决方案
做好过滤
7.OP同源
同源才能执行
8.CSRF防御
我们需要设定哪些域名是安全的,对于对服务端来说不安全的域名我们直接拒绝访问,就可以了。我们在所有接口中对请求进行校验,否则就拒绝。
我们还可以用SameSite Cookie属性,来防止其他页面带上该页面的cookie。
9.对于SQL注入的防御
那对于这种数据库形式的攻击,我们就要保证最小权限原则,并且建立允许名单+过滤,并对于URL类型参数进行协议等限制。
10.对于DOS的防御
那么很简单,对于正则表达式需要进行检查,或者干脆直接禁用用户使用正则表达式就可以了。
11.DDOS
我们可以在网关层进行恶意流量识别,也可以在CDN进行过滤。一旦被流量攻击,我们可以使用快速自动扩容技术抵御攻击。