反射型XSS
存储型XSS
DOM-based XSS
| 项目 | 自查项 |
|---|---|
| DOM 渲染方式 | 禁止直接使用 innerHTML dangerouslySetInnerHTML |
| 用户输入 | 输入输出均做 Escape 处理或白名单过滤 |
| URL / Query 参数渲染 | 禁止未经处理直接插 DOM |
| 富文本内容 | 使用 DOMPurify / xss 库进行白名单过滤 |
跨站请求伪造
本质: 利用 cookie 自动携带的特性 伪装用户身份
SameSite=Strict可以直接解决
大部分公司 后端响应头配置
Set-Cookie: session=xxx; HttpOnly; Secure; SameSite=None
HttpOnly;: 禁止 JS 读取 Cookie
Secure;: 仅HTTPS传输
SameSite;: 跨站请求时是否携带 Cookie
SameSite=Strict必须同时设置Secure;
CSRF Token
HttpOnly
Access-Control-Allow-Origin: https://app.example.com 精确白名单
关键请求二次验证 且存在过期时间 防止批量自动化攻击
默认 SameSite=Lax, 只有get请求会带cookie
SameSite=None, 必须配Secure, 否则浏览器不会保持该cookie,
浏览器对 Cookie 的携带规则只看目标域名,不看请求来源网站
浏览器Origin安全策略:CORS(跨域资源共享)
决定JS能否访问接口: 同全部域名 + 同协议 + 同端口
浏览器Cookie安全策略:SameSite
决定是否携带cookie: 同顶级域名 + 同协议
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 3600
Access-Control-Allow-Methods:GET,POST
Access-Control-Allow-Headers:Content-Type