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安全, 安全测试, 攻击性安全, 数据可视化, 自定义脚本, 蓝队分析