Wh1t3Fox/csrf.page

GitHub: Wh1t3Fox/csrf.page

一个涵盖 32 篇指南、PoC 生成器、速查表和交互式实验室的 CSRF 安全测试与教育平台,系统记录各浏览器引擎在不同 Cookie 策略下的跨站请求行为。

Stars: 0 | Forks: 0

# csrf.page 网上大多数关于 CSRF 的资料都早于 Chrome 80。它们将自动提交的跨站 POST 表单作为*最典型*的 CSRF 攻击手段进行教学——这种攻击自 2020 年起在 Chromium 中就不再默认生效,但在 Firefox 和 Safari 中仍然有效。本站记录了每种请求形态、每种 cookie 策略和每种浏览器引擎下的实际情况。 ⚠️ **仅供教育和授权的安全测试使用。** 在大多数司法管辖区,未经明确书面许可对系统进行测试是非法的。 ## 功能 - **32 指南** — 涵盖基础知识、投递技术、防御模式、绕过方法、攻击面、七大框架的预防措施以及测试方法。 - **PoC 生成器** (`/poc`) — 九种投递形态 × 五种方法 × 五种内容类型 × 四种 cookie 策略。生成可直接复制粘贴的 HTML,并提供关于特定浏览器引擎是否会实际发送会话 cookie 的判定结果。 - **速查表** (`/cheatsheet`) — 2026 年的请求形态 × SameSite 矩阵,以及各大主流框架默认的 CSRF 处理方式。 - **实验室** (`/lab`) — 在沙盒 iframe 中模拟的银行和真实的攻击者页面,通过防御开关展示哪种控制手段能阻止哪种请求。 ## 维护性保障 浏览器行为仅集中在一个文件 `data/samesite-matrix.json` 中。速查表、生成器的判定结果以及实验室都派生自该文件,并且 `npm run check` 会断言它们保持一致: ``` check: 32 guides, 32 nav entries, all links resolve; 900 PoC combinations valid; 72 encoding round-trips; 40 matrix cells agree with the generator (2 prose-only rows not machine-checked) ``` 如果速查表和生成器在是否发送 cookie 的问题上出现分歧,**构建将会失败**。当浏览器策略发生变化时,只需修改这一个文件,而无需审计全部 32 个指南。 ## 内容 | 章节 | 指南 | |---|---| | 基础知识 | CSRF 到底是什么 · 2026 年的 CSRF · Cookie 模型 · SameSite 语义 · 同源策略与 CORS | | 投递方式 | GET 投递 · 自动提交表单 · JSON, text/plain, GraphQL · fetch, XHR, sendBeacon | | 防御模式 | Synchronizer Token · 双重提交 Cookie · Origin, Referer, Fetch Metadata | | 绕过方法 | Token 验证缺陷 · 绕过 SameSite · 破解 Referer 和 Origin · 方法与 Content-Type 切换 · 子域 Cookie 注入 · CORS 辅助的 CSRF · 点击劫持辅助的 CSRF | | 攻击面 | 登录 CSRF 与会话固定 · 跨站 WebSocket 劫持 · 路由器、IoT 和 localhost | | 预防措施 | Django · Rails · Spring Security · Laravel · ASP.NET Core · Express / Node · Go | | 测试与修复 | 方法论 · 工具 · 纵深防御 | ## 快速开始 需要 Node 20.9+(见 `.nvmrc`)。 ``` git clone https://github.com/Wh1t3Fox/csrf.page.git cd csrf.page npm install npm run dev ``` ## 构建 ``` npm run check # validate content, generator, and matrix agreement npm run build # static export to out/ npm start # serve out/ ``` `npm run build` 会首先运行 `check`,遇到任何问题都会失败。 ## 技术栈 Next.js 16 (Pages Router, static export) · React 19 · Tailwind CSS 3.4 · 纯 JavaScript,无 TypeScript · 除 React、markdown 渲染和语法高亮外,无其他运行时依赖。 ## 添加指南 1. 编写 `data/guides/.json` — 文件名必须与 `id` 相同。 2. 将其添加到 `data/navigation.json` 中,并设置相应的 `severity`。 3. 运行 `npm run check`。 这些文件是纯 JSON 且内容包含大量 HTML,因此代码字符串中的每个 `"` 都需要进行转义,每个反斜杠都需要加倍。`npm run check` 会解析每个指南并指出违规之处。 有关完整的架构说明,请参阅 `CLAUDE.md`,其中包括任何指南都不得与 `data/samesite-matrix.json` 相矛盾的规则。 ## 许可 仅供教育目的和授权的安全测试使用。 ## 相关项目 - [sqli.page](https://sqli.page) — SQL 注入 - [xss.page](https://xss.page) — 跨站脚本攻击 - [ssrf.page](https://ssrf.page) — 服务器端请求伪造 - [xxe.page](https://xxe.page) — XML 外部实体
标签:CSRF, MITM代理, Web安全, 安全测试, 攻击性安全, 数据可视化, 自定义脚本, 蓝队分析