Skip to content

网络安全

XSS(跨站脚本攻击) · CSRF(跨站请求伪造) · 防御策略


一、XSS(跨站脚本攻击)

本质:代码注入攻击,攻击者在目标网站注入恶意脚本在用户浏览器执行

三种类型

类型存储区触发方式
存储型(持久性)后端数据库无需用户手动触发,最危险
反射型(非持久性)URL需用户点击恶意链接
DOM 型URL/前端存储前端 JS 取出恶意代码执行

防御

  1. HttpOnly Cookie:JS 无法读取 Cookie
  2. 输入过滤:前后端都做输入格式校验
  3. HTML 转义:对 < > " ' & / 等特殊字符转义
  4. 白名单过滤:富文本场景用白名单而非黑名单
  5. 纯前端渲染:用 .innerText / .setAttribute() 代替 .innerHTML
  6. 避免危险 API:不使用 eval()innerHTMLdocument.write()

二、CSRF(跨站请求伪造)

本质:利用浏览器自动携带 Cookie 的特性,冒充已登录用户发起请求

攻击流程

  1. 用户登录网站 A,本地生成 Cookie
  2. 用户在不登出 A 的情况下访问恶意网站 B
  3. 网站 B 向网站 A 发起请求,浏览器自动携带 A 的 Cookie
  4. 网站 A 认为是合法用户操作,执行请求

CSRF vs XSS

XSSCSRF
本质代码注入问题HTTP 请求问题
攻击方式注入恶意代码并执行冒用用户身份发起请求
目标窃取数据/注入内容执行非预期操作

防御

  1. Token 验证(最推荐):请求中携带随机 Token,服务端校验
  2. SameSite Cookie:限制 Cookie 只在同站请求中发送
  3. Referer/Origin 检查:校验请求来源域名
  4. 验证码:强制用户交互

相关