Published on

网络安全

Authors
  • avatar
    Name
    Reeswell
    Twitter

Web 安全

XSS 和 CSRF 攻击

XSS(跨站脚本攻击)

  • 定义:攻击者向网页中注入恶意脚本(通常为 JavaScript),当其他用户访问该页面时,脚本会在用户浏览器中执行,从而窃取用户信息、劫持会话或执行其他恶意操作。
  • 本质:注入并执行脚本,攻击目标是用户浏览器
  • 举例:攻击者在评论区插入 <script>alert('XSS')</script>,其他用户访问页面时弹窗或窃取 Cookie。
  • 防御措施
    • 输入过滤
    • 输出编码(如 HTML 转义)
    • 使用 CSP(内容安全策略)
    • 设置 HTTP Only Cookie

CSRF(跨站请求伪造)

  • 定义:攻击者诱导用户在已登录的目标网站上,自动发起非用户本意的请求(如转账、修改密码等),利用用户的身份完成非法操作。
  • 本质:伪造合法请求,攻击目标是服务器端对用户身份的信任
  • 举例:攻击者构造一个隐藏表单或图片,诱导用户点击链接,自动向银行转账接口发起 POST 请求。
  • 防御措施
    • 使用 Anti-CSRF Token(同步令牌模式)
    • 设置 SameSite Cookie 属性
    • 验证 Referer 头

知识补充:XSS 底层原理
浏览器无法区分“合法脚本”和“恶意脚本”,只要 HTML 文档中包含 <script> 或可执行的 JS 代码,浏览器都会执行。因此必须在输入和输出环节严格校验和转义,防止恶意代码注入。

CSRF 防护策略

分级防护建议
安全级别适用场景防御措施
基础博客/新闻站SameSite=Lax + 框架默认防护
标准电商/社交网络同步令牌 + SameSite=Strict
高级金融/医疗系统加密令牌 + 关键操作二次认证

XSS 防护能力对比

防御手段防存储型防反射型防 DOM 型错误报告
输入过滤
输出编码
HTTP Only Cookie
CSP

XSS 攻击类型对比

攻击类型存储位置触发方式影响范围危险程度
存储型 XSS服务器数据库用户访问包含恶意脚本的页面持久性,影响所有访问用户
反射型 XSSURL 参数用户点击包含恶意脚本的链接一次性,影响点击用户
基于 DOM 型前端 DOM客户端 JavaScript 处理用户输入本地执行,不经过服务器