🛡️ CSRF防护演示页面

CVE-HXCI-2025-010 修复验证

演示跨站请求伪造(CSRF)攻击与防护机制

🔐 CSRF Token状态

首先获取有效的CSRF Token,这是防护的基础

✅ 合法请求测试 受保护

带有正确CSRF Token的请求应该能够成功执行

fetch('/admin-api/test/notification/api/publish-database', { method: 'POST', headers: { 'Authorization': 'Bearer ' + jwtToken, 'tenant-id': '1', 'X-CSRF-TOKEN': csrfToken, // 🔐 正确的CSRF Token 'Content-Type': 'application/json' }, credentials: 'include', body: JSON.stringify({ title: '✅ 合法请求测试', content: '这个请求携带了正确的CSRF Token', level: 4, targetScope: 'SCHOOL_WIDE' }) });

🚨 CSRF攻击模拟 已防护

恶意网站尝试在用户不知情的情况下执行操作(无CSRF Token)

// 🚨 恶意网站的JavaScript代码 fetch('/admin-api/test/notification/api/publish-database', { method: 'POST', headers: { 'Authorization': 'Bearer ' + stolenJwtToken, 'tenant-id': '1', 'Content-Type': 'application/json' // ❌ 缺少CSRF Token - 攻击者无法获取 }, body: JSON.stringify({ title: '🚨 恶意通知', content: '这是CSRF攻击尝试发布的恶意内容' }) });

🎭 伪造Token攻击 已防护

攻击者尝试使用伪造的CSRF Token绕过防护

fetch('/admin-api/test/notification/api/publish-database', { method: 'POST', headers: { 'Authorization': 'Bearer ' + jwtToken, 'tenant-id': '1', 'X-CSRF-TOKEN': 'fake-token-12345', // 🎭 伪造的CSRF Token 'Content-Type': 'application/json' }, body: JSON.stringify({ title: '🎭 伪造Token攻击', content: '这个请求使用了伪造的CSRF Token' }) });

📖 GET请求测试 无需验证

GET请求(读操作)不需要CSRF Token,保持RESTful API的无状态特性

fetch('/admin-api/test/notification/api/list', { method: 'GET', headers: { 'Authorization': 'Bearer ' + jwtToken, 'tenant-id': '1' // ℹ️ GET请求无需CSRF Token } });