CSRF防护概念演示 - Token验证流程
模拟跨站请求伪造攻击以及如何通过CSRF Token进行防护的流程演示。
UD5工具箱
<input type="hidden"> 中
<input type="hidden" name="csrf_token" value="">
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种网络攻击手段。攻击者诱导已登录用户访问恶意网站,利用用户在目标网站的有效会话,以用户的名义发送伪造的请求。
举例:您登录了银行网站后,在另一个标签页打开了恶意网站。恶意网站中的隐藏表单自动向银行发起转账请求。由于浏览器会自动携带银行Cookie,如果银行没有CSRF防护,这笔转账就会成功执行。
核心原理:CSRF Token是一个随机生成的、与用户会话绑定的唯一字符串。它的防护逻辑基于一个关键事实:
常见的存放位置有:
<input type="hidden" name="csrf_token" value="..."> — 最传统的方式。X-CSRF-Token 或 X-XSRF-Token,常用于AJAX请求。⚠️ 注意:不要将CSRF Token放在URL查询参数中,因为URL可能被Referer头泄露或被浏览器历史记录保存。
| 特性 | CSRF | XSS |
|---|---|---|
| 攻击目标 | 利用用户已认证的会话 | 在用户浏览器中执行恶意脚本 |
| 攻击方式 | 伪造跨站请求 | 注入恶意代码到页面 |
| 是否读取响应 | 通常不能读取响应 | 可以读取页面内容 |
| 防护措施 | CSRF Token、SameSite Cookie | 输出编码、CSP、输入验证 |
| 同源策略 | 绕过(利用Cookie自动携带) | 在同源内执行 |
💡 关键区别:XSS可以在页面中执行任意JS代码,因此如果存在XSS漏洞,CSRF Token防护也会被绕过(攻击者可以读取Token)。
SameSite是Cookie的一个属性,用于控制Cookie在跨站请求中是否发送:
Secure属性(仅HTTPS)。📌 现代浏览器(Chrome 80+)默认使用SameSite=Lax,这本身就能防御大部分CSRF攻击。但CSRF Token仍然是纵深防御的重要一环。
安全的CSRF Token生成应满足:
crypto.randomBytes())。在SPA中,常见的做法是:
sessionStorage中(不要存储在localStorage中,因为易受XSS攻击)。X-CSRF-Token)中携带Token。csrf_token Cookie(非HttpOnly),前端读取后通过请求头发送,服务器比对两者。当您在上方关闭CSRF防护开关后:
⚠️ 在生产环境中,请始终启用CSRF防护!
模拟跨站请求伪造攻击以及如何通过CSRF Token进行防护的流程演示。
同步器令牌模式演示:生成令牌嵌入表单,提交时验证,理解CSRF防护核心流程。
使用CTAP2模拟器或安全密钥在浏览器中体验无密码注册与认证流程。
上传或粘贴证书签名请求(CSR)或公开证书内容,提取CN, SAN, 有效期等。
粘贴SSH公钥,生成对应的OpenSSH randomart视觉指纹图和指纹字符串。
设置复杂度规则(长度、字符类型、字典排除),测试密码是否满足自定义安全策略。
结构化编辑颜色、间距、字体等设计令牌,一键导出为CSS自定义属性、SCSS变量或JSON。
输入域名,通过TLS连接获取其SSL证书的颁发者、有效期、主题等信息。
通过公共API获取指定域名的证书信息,展示颁发者、有效期及SAN。
粘贴Base64编码的PEM证书,解码并显示颁发者、有效期、公钥算法与指纹等信息。
构建一个虚拟的登录窗,演示SQL注入登录绕过,并展示参数化查询如何防范。
勾选Secure、HttpOnly、SameSite等属性,生成安全的Set-Cookie字符串,增强Web应用安全。
输入提示词文本,利用简易编码器估算大致 Token 数量和可能的费用。
从内置题库中随机组合个性化安全问题,用于账户恢复或身份验证设置。
输入域名和证书公钥哈希,模拟HPKP策略的配置与验证过程,理解其工作原理。
为了演示生成一个简单的Hashcash stamp,需要消耗CPU计算,用于反垃圾机制展示。
生成简单数字或字母验证码图片,带干扰线和噪点,适合前端原型测试,不依赖服务端。
输入提示词文本,模拟GPT等模型的BPE分词并估算Token数量,辅助控制成本与长度。
通过PBKDF2算法将弱密码转为加密级密钥,可设定盐和迭代次数,用于密钥管理演示。
逐步演示OAuth 2.0授权码流程或PKCE流程,展示参数跳转和Token交换。
根据字符集大小和长度计算密码的熵值(比特),给出破解时间估算。
图形化配置Content-Security-Policy指令,生成安全策略头,防御XSS和代码注入。
生成包含指定数量随机Emoji的密码短语,新奇有趣,增加猜测难度。
尝试输入各种编码和混淆的 XSS 向量,检查是否被过滤或执行(沙盒环境)。
生成一个随机字符矩阵的密码卡,通过行列坐标记忆组合强密码,可打印保存。
虚拟掷5次骰子,根据官方Diceware词表生成强随机且易记忆的通行短语。
生成与明文等长的真随机密钥,并演示异或加密解密的一次性密码本原理。
对复杂JSON应用JSONPath抽取多条记录,并直接导出为CSV表格。
检测浏览器指纹、IP信息、WebRTC泄露等,列出潜在隐私风险并提供关闭建议。
测试浏览器通知权限和弹出,自定义标题、正文及图标,发送系统桌面通知,调试推送。