0%

前端安全 CSRF 防范

CSRF 是什么?

跨站请求伪造,诱导用户执行操作。

防范

  • SameSite Cookie
  • CSRF Token
1
<input type="hidden" name="csrf_token" value="token">

总结

CSRF 防范保护用户操作安全。

抵御策略

  • 同源策略已阻止大多数跨域请求
  • 仍需防止浏览器自动带 Cookie 的 POST/GET 请求

CSRF Token 实现

后端生成随机 token,保存在 session 并在表单中作为隐藏字段传递。

1
<input type="hidden" name="csrf_token" value="<%= token %>">

服务器验证提交的 token 是否匹配。

设置 Set-Cookie: key=value; SameSite=StrictLax

前端将 token 存在 cookie 并在请求头或 body 中重复提交。

框架支持

  • Django:CsrfViewMiddleware
  • Express:csurf 中间件
  • Rails:自动生成 authenticity token

检测工具

使用 OWASP ZAP 可以模拟 CSRF 攻击。

实例分析

1
2
3
4
5
fetch('/transfer', {
method: 'POST',
credentials: 'include',
body: JSON.stringify({ amount: 100 })
});

若攻击者构造页面自动请求,将触发 CSRF,除非有 token 验证。

��攻击者构造页面自动请求,将触发 CSRF,除非所有��攻凔�户输入的接口上进行防护。

CSRF 防范补充 1
CSRF 防范补充 2
CSRF 防范补充 3
CSRF 防范补充 4
CSRF 防范补充 5
CSRF 防范补充 6
CSRF 防范补充 7
CSRF 防范补充 8
CSRF 防范补充 9
CSRF 防范补充 10
CSRF 防范补充 11
CSRF 防范补充 12
CSRF 防范补充 13
CSRF 防范补充 14
CSRF 防范补充 15
CSRF 防范补充 16
CSRF 防范补充 17
CSRF 防范补充 18
CSRF 防范补充 19
CSRF 防范补充 20
CSRF 防范补充 21
CSRF 防范补充 22
CSRF 防范补充 23
CSRF 防范补充 24
CSRF 防范补充 25
CSRF 防范补充 26
CSRF 防范补充 27
CSRF 防范补充 28
CSRF 防范补充 29
CSRF 防范补充 30
CSRF 防范补充 31
CSRF 防范补充 32
CSRF 防范补充 33
CSRF 防范补充 34
CSRF 防范补充 35
CSRF 防范补充 36
CSRF 防范补充 37
CSRF 防范补充 38
CSRF 防范补充 39
CSRF 防范补充 40
CSRF 防范补充 41
CSRF 防范补充 42
CSRF 防范补充 43
CSRF 防范补充 44
CSRF 防范补充 45
CSRF 防范补充 46
CSRF 防范补充 47
CSRF 防范补充 48
CSRF 防范补充 49
CSRF 防范补充 50
CSRF 防范补充 51
CSRF 防范补充 52
CSRF 防范补充 53
CSRF 防范补充 54
CSRF 防范补充 55
CSRF 防范补充 56
CSRF 防范补充 57
CSRF 防范补充 58
CSRF 防范补充 59
CSRF 防范补充 60
CSRF 防范补充 61
CSRF 防范补充 62
CSRF 防范补充 63
CSRF 防范补充 64
CSRF 防范补充 65
CSRF 防范补充 66
CSRF 防范补充 67
CSRF 防范补充 68
CSRF 防范补充 69
CSRF 防范补充 70
CSRF 防范补充 71
CSRF 防范补充 72
CSRF 防范补充 73
CSRF 防范补充 74
CSRF 防范补充 75
CSRF 防范补充 76
CSRF 防范补充 77
CSRF 防范补充 78
CSRF 防范补充 79
CSRF 防范补充 80
CSRF 防范补充 81
CSRF 防范补充 82
CSRF 防范补充 83
CSRF 防范补充 84
CSRF 防范补充 85
CSRF 防范补充 86
CSRF 防范补充 87
CSRF 防范补充 88
CSRF 防范补充 89
CSRF 防范补充 90