Web安全|青训营笔记

65 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第6天

Web安全

如何看待网络安全

  • 如果你是一个黑客---攻击
  • 如果你是一个开发者----防御

攻击篇

1.跨站脚本攻击Cross-Site Scripting(XSS)

盲目信任用户提交内容,将字符串直接转换成dom

分类:

  1. Stored XSS:恶意脚本储存在数据库中
  2. Reflected XSS:通过URL攻击,在服务端注入
  3. DOM-based XSS:通过URL攻击,全在浏览器中执行
  4. Mutation-baswd XSS:利用浏览器渲染特性进行攻击

2.跨站伪造请求Cross-site request forgery(CSRF)

在用户不知情下,利用用户权限(cookie),构造http请求,窃取或修改用户信息

3.服务器端伪造请求Server-side request forgery(SSRF)

请求用户自定义callback url

web server 通常有内网访问权限

4.SQL注入

注入SQL语句,在server端执行获取、删除、增添操作数据

5.Denial of Service(DoS)

通过某种方式,导致服务器资源呗显著消耗,来不及响应更多请求,导致请求挤压

特点

  1. 耗时的同步操作
  2. 数据库写入
  3. SQL join
  4. 文件备份
  5. 循环执行逻辑

6.Distributed Dos(DDoS)

短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致1请求堆积,进而雪崩效应,无法响应新请求

攻击特点:直接访问ip 任意api 消耗大量带宽(耗尽)

7.中间人攻击

可以窃取信息,

修改请求、返回结果

特点

  1. 明文传输
  2. 信息篡改不可知
  3. 对方身份未验证

防御篇

1.XSS

永远不信任用户的提交内容

不要将用户提交内容直接转换成DOM

前端

主流框架默认防御xss

服务端(Node)

-DOMPurify

2.内容安全策略Content Security Policy(CSP)

  1. 定义安全的源(域名)
  2. 来自安全源的脚本可以执行,否则报错

浏览器meta:

<meta http-equiv="Content-Security-Policy" content="script-src self">
复制代码

3.CSRF

  1. 通过校验请求的Origin + Referrer限制请求来源
  2. token与具体用户进行绑定,设置过期时间
  3. 服务器设置X-Frame-Options: DENY/SAMEORIGN规避iframe攻击
  4. 明确划分get和post请求

4.Injection

找到项目中查询SQL的地方,使用prepared statement

5.Dos

  1. 避免贪婪匹配
  2. 代码扫描
  3. 拒绝使用用户提供正则表达式

6.DDos

  1. 流量治理
  2. 快速自动扩容
  3. 非核心服务降级

7.传输层

HTTPS协议