Web开发的安全之旅 | 青训营笔记

113 阅读2分钟

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

1)攻击篇

  • XSS

它是指攻击者往web页面或url里插入恶意JavaScript脚本代码且应用程序对用户输入的内容没有过滤,那么当正常用户浏览该页面时,嵌入在web页面的恶意JavaScript脚本代码会被执行,从而达到恶意攻击正常用户的目的。

1659325231385.png

  • XSS一些特点
  1. 通常难以从UI上感知(暗地执行脚本)
  2. 窃取用户信息(cookie/token)
  3. 绘制UI(例如弹窗),诱骗用户点击/填写表单
  • XSS通常利用盲目信任用户的提交内容进行攻击
  • XSS demo

image.png

  • XSS分类
  1. Stored XSS

image.png

  1. Reflected XSS

image.png

  1. Dom-based XSS

image.png

  1. Mutation-bssed XSS

image.png

  • CSRF

image.png

Cross-site request forgery(CSRF)原理: 用户登录了某网站A,并在本地记录了cookie,在没有退出该网站时(cookie有效的时间内),攻击者发送引诱网站B,B要求访问A,从而达到获取用户隐私。

  • DDOS

image.png

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

2)防御篇

  • XSS防御
  1. 永远不信任用户的提交内容
  2. 不要将用户的提交内容直接转换成DOM
  3. 用户应用需求需要使用到动态DOM时间,应该设置逻辑对上传DOM和解析DOM进行转义
  4. 对于svg文件的上传应该尤其的注意防护,svg文件可以内嵌js脚本
  5. 尽量不要允许用户自定义跳转(JS)、自定义样式也不行。
  • CSP防御

image.png

  • CSRF防御

image.png

  • CSRF--token

if(请求来自合法页面)

then(服务器接收过页面请求)

then(服务器可以标识)

  • SameSite vs CORS

image.png

  • Injection beyond SQL

image.png

  • 防范DoS攻击:
  1. ReDoS 减少允许用户使用正则表达式请求

增加校验, 对代码做扫描 +正则性能测试

  1. L-DoS

限流: 限制流量的异常波动,对于异常IP封锁。

并不是非黑即白: 有时候需要请求量超过阈值才能检测出L-DoS

分析代码的性能瓶颈:同步调用、串行逻辑、CPU密集操作

  1. DDoS

过滤:负载均衡、API网关

抗量:CDN、快速扩容、 非核心服务降级备战

  1. 中间人防御

HTTP特性: 可靠性-明文加密,完整性:MAC验证;不可抵赖性-数字签名

HTTPS加密:在三次握手时进行hash加密,利用公钥和证书进行数字签名校验。

将HTTP主动升级到HTTPS:需要之前要有一次HTTPS访问 当静态资源被劫持篡改了,可以运用SRI对资源做hash验证。