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

135 阅读2分钟

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

安全问题很常见,会危害用户、公司、程序员

攻击篇

Cross-Site Scripting(XSS)

<script>alert("xss");</script>

XSS主要利用了:

XSS = 盲目信任用户提交的内容

        +
    
     string->DOM
     - document.write
     - element.innerHTML = anyString;
     - SSR(user_data)// 伪代码

XSS特点:

  • 通常难以从UI上感知(暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

XSS demo

image.png 可以直接提交恶意脚本

image.png

Stroed XSS

  • 恶意脚本被存在数据库中
  • 访问页面->读数据===被攻击
  • 危害最大,对全部用户可见

Reflected XSS

  • 不涉及数据库
  • 从URL上攻击

Reflected XSS Demo

image.png

DOM-based XSS

  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器完成

DOM-based XSS Demo

image.png

Reflected vs DOM-based

image.png

Mutation-based XSS

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器,会有区别(按浏览器进行攻击)

image.png

Cross-site request forgery(CSRF)

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定HTTP请求,窃取或修改用户敏感信息

CSRF demo

image.png

CSRF————GET

image.png

CSRF————beyond GET

image.png

SQL Injection

image.png

Injection demo 1

image.png

image.png

Injection不至于SQL
  • CLI
  • OS command
  • Server-Side Request Forgery(SSRF),服务端伪造请求
  • 严格而言,SSRF不是injection,但是原理类似
Injection demo 2————执行

image.png

image.png

Injection demo 2————读取+修改

image.png

SSRF demo

image.png

Denial of Servise(DoS)

通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应

插播:正则表达式————贪婪模式

image.png

ReDoS:基于正则表达式的DoS

image.png

Logical DoS
  • 耗时的同步操作
  • 数据库写入
  • SQL join
  • 文件备份
  • 循环执行逻辑
Logical DoS Demo

image.png

Distributed DoS(DDoS)

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

DDoS

攻击特点:

  • 直接访问IP
  • 任意API
  • 消耗大量带宽(耗尽)
DDoS demo

image.png

传输层

中间人攻击

image.png

防御篇

XSS

image.png

XSS————现成工具

image.png

string->DOM

image.png

上传svg

image.png

Blob动态生成script

image.png

自定义跳转链接

image.png

自定义样式

image.png

插播:Same-origin Policy

image.png

Content Security Policy(CSP)

CSP

  • 哪些源(域名)被认为是安全的
  • 来自安全源的脚本可以执行,否则直接抛错
  • 对 eval + inline script说no

CSP

image.png

CSRF的防御

image.png

CSRF————token

image.png

image.png

CSRF————iframe攻击

image.png

CSRF anti-pattern

image.png

避免用户信息被携带:SameSite Cookie

image.png

SameSite Cookie

image.png

image.png

SameSite vs CORS

image.png

SameSite demo

image.png

SameSite Cookie

image.png

防御CSRF的正确姿势

image.png

Injection

image.png

Injection beyong SQL

image.png

防御DoS

Regex DoS

image.png

Logical DoS

image.png

DDoS

image.png

传输层————防御中间人

image.png

HTTPS的一些特性

image.png

image.png

HTTP————完整性

image.png

插播:数字签名

image.png

HTTPS————不可抵赖:数字签名

image.png

HTTPS————证书 续

image.png

HTTPS————证书 demo

HTTP Strict-Transport-Security(HSTS)

image.png

Subresource Integrity(SRI)

image.png

SRI————demo

image.png

补充

image.png

image.png

推荐读物

image.png