CSRF 令牌生成与验证模拟器 - 跨站请求伪造防护
同步器令牌模式演示:生成令牌嵌入表单,提交时验证,理解CSRF防护核心流程。
UD5工具箱
交互式演示授权码流程 (Authorization Code) 与 PKCE 扩展
👆 点击左侧步骤或使用下方控制按钮开始演示
授权码流程是 OAuth 2.0 中最经典、最安全的授权方式之一。它通过前端通道获取授权码,后端通道换取令牌的双通道机制来保障安全:
此流程适用于有后端服务的 Web 应用(如传统 MVC 应用、后端渲染的应用),因为需要安全存储 client_secret。
PKCE(读作 "pixy")是授权码流程的安全增强扩展,专为无法安全存储 client_secret 的公共客户端设计(如单页应用 SPA、移动 App、桌面应用)。
核心机制:
防护场景:在移动端或 SPA 中,恶意应用可能拦截回调 URL 中的授权码。但没有 code_verifier,攻击者无法完成令牌兑换。PKCE 有效防止了授权码拦截攻击。
它们之间的关系可以用以下公式表示:
code_challenge = Base64URL( SHA256( code_verifier ) )
PKCE 也支持 plain 模式(challenge = verifier),但强烈不推荐,应始终使用 S256 模式。
state 参数是一个随机生成的字符串,在授权请求中发送,授权服务器在回调时原样返回。它有两大作用:
最佳实践中,state 应该是不可预测的随机值,并应在使用后立即失效。
JWT 是一种紧凑的、URL 安全的令牌格式,由三部分组成,用点号 (.) 分隔:
eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature_here
JWT 的内容可被任何人解码读取(Base64 不是加密),因此绝不能在 JWT 中存储敏感信息。安全性依赖于签名验证。
对于 SPA 和纯前端应用,推荐使用授权码流程 + PKCE(Authorization Code with PKCE),原因如下:
配合 BFF(Backend for Frontend) 架构或 Token Handler 模式,可以进一步提升 SPA 的安全性。
不可以。授权码是一次性的,使用后立即失效。这是 OAuth 2.0 安全模型的重要设计:
生成安全的 code_verifier 需要遵循以下规范(RFC 7636):
A-Z a-z 0-9 - . _ ~(即 Base64URL 字符集)。crypto.getRandomValues()),不可使用 Math.random()。本模拟器中使用 crypto.getRandomValues() 生成符合规范的随机 verifier,展示了最佳实践。
同步器令牌模式演示:生成令牌嵌入表单,提交时验证,理解CSRF防护核心流程。
使用CTAP2模拟器或安全密钥在浏览器中体验无密码注册与认证流程。
自定义头像、姓名、部门等信息,生成虚拟员工ID卡,适合团队活动或内部展示。
选择编程语言,生成一份该语言的代码审查要点清单,包含性能、安全、可读性等。
选择所在时区和典型工作时间,生成显示可用时段的徽章图片。
模拟服务端生成与校验CSRF令牌的完整过程,展示隐藏在表单与Session中的同步模式。
支持生成随机强密码、由单词组成的易记短语密码,以及排除容易混淆字符的密码。
粘贴Base64编码的PEM证书,解码并显示颁发者、有效期、公钥算法与指纹等信息。
动画展示环形/循环缓冲区的Enqueue、Dequeue操作以及头尾指针的移动逻辑。
输入域名和证书公钥哈希,模拟HPKP策略的配置与验证过程,理解其工作原理。
模拟带音效和特效的开箱过程,随机获得不同皮肤的道具。
模拟跨站请求伪造攻击以及如何通过CSRF Token进行防护的流程演示。
通过回答几个简单问题,为您推荐合适的开源许可证(MIT、Apache、GPL等),并展示许可条款摘要。
生成由随机单词组成的口令短语,或自定义字符集强密码,实时显示强度。
生成简单数字或字母验证码图片,带干扰线和噪点,适合前端原型测试,不依赖服务端。
上传基础图标,添加数字或红点角标,生成带提醒效果的动态Favicon SVG。
上传含经纬度的CSV,在静态地图或Leaflet上标出所有点。
逐步骤模拟SMTP握手:EHLO、MAIL FROM、RCPT TO、DATA,查看服务器响应。
可视化展示发布/订阅模式的运作,添加订阅者和发布者,查看事件流。
在网格上合理放置住宅、农场、市场等卡牌,满足相邻加成条件得分。
交互式向栈(后进先出)或队列(先进先出)添加删除元素,演示数据流变化。
在画布上放置并连接与、或、非门,切换输入观察输出。
生成可用于谍报密码游戏的5x5单词网格,支持自定义主题词库。
粘贴SSH公钥,生成对应的OpenSSH randomart视觉指纹图和指纹字符串。
创建带有弹性动画的通知数字徽章或红点,生成对应的HTML/CSS代码。
支持多人通过不同键盘按键抢答,最先按下者屏幕亮起并锁定,类似电视节目。
上传名片图片,前端模拟解析姓名、电话、公司字段,演示视觉识别流程(模拟数据)。
上传图标并添加未读数的角标红点或数字,生成带提醒效果的网站Favicon。
尝试输入各种编码和混淆的 XSS 向量,检查是否被过滤或执行(沙盒环境)。
说出特定指令来操控虚拟卡牌出牌或触发效果,体验语音交互娱乐。