laphilosophia/sigil-security
GitHub: laphilosophia/sigil-security
为现代 Web 应用提供无状态加密请求意图验证的安全框架,超越传统 CSRF 防护,将完整性、来源、时效性和上下文多维条件组合为统一验证策略。
Stars: 0 | Forks: 0
# Sigil Security
为现代 Web 应用程序提供的无状态加密请求意图验证。
Sigil 验证的远不止“这个请求是否带有 token?”。它结合了加密完整性、请求来源、新鲜度以及可选的重放保护,使得状态变更请求既真实又具有上下文有效性。
[](https://github.com/laphilosophia/sigil-security/actions/workflows/github-code-scanning/codeql)
[](https://github.com/laphilosophia/sigil-security/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@sigil-security/runtime)
[](https://github.com/laphilosophia/sigil-security/blob/main/LICENSE)
## 为什么选择 Sigil
- 超越经典的同步器 token 模式,迈向请求意图验证
- 保持核心安全面的无状态性和可组合性
- 分层 policy、runtime、client 和 ops 层面,让团队按需采用
- 附带仓库内置的加固、基准测试和跨运行时验证证据
## 验证内容
Sigil 仅当以下所有条件都满足时才将请求视为有效:
```
Integrity AND Context AND Freshness AND Provenance
```
- `Integrity`:基于 HMAC 的 token 验证
- `Freshness`:TTL 强制执行和可选的一次性重放保护
- `Provenance`:Origin 和 Fetch Metadata 验证
- `Context`:可选的请求、路由或 session 绑定
## 选择你的包
| 包 | 适用场景 | 状态 |
| --- | --- | --- |
| `@sigil-security/runtime` | 您想要最快地上手并集成到实际应用中 | 稳定版 |
| `@sigil-security/core` | 您需要底层的 token 和密钥原语 | 稳定版 |
| `@sigil-security/policy` | 您需要请求上下文策略检查,而无需完整的运行时编排 | 稳定版 |
| `@sigil-security/client` | 您需要浏览器端的 token 生命周期辅助工具 | 实验性 |
| `@sigil-security/ops` | 您需要遥测、异常信号和结构化日志 | 实验性 |
大多数团队应该从 `@sigil-security/runtime` 开始。
## 快速开始
```
pnpm add @sigil-security/runtime
```
```
import express from 'express'
import { createSigil } from '@sigil-security/runtime'
import { createExpressMiddleware } from '@sigil-security/runtime/express'
const sigil = await createSigil({
masterSecret: process.env.SIGIL_MASTER_SECRET!,
allowedOrigins: ['https://app.example.com'],
oneShotEnabled: true,
})
const app = express()
app.use(express.json())
app.use(createExpressMiddleware(sigil, {
excludePaths: ['/health'],
}))
```
向浏览器暴露内置的 token 端点:
- `GET /api/csrf/token`
- 启用一次性 token 时的 `POST /api/csrf/one-shot`
有关完整的首次运行路径,请参阅 [docs/QUICKSTART.md](./docs/QUICKSTART.md)。
## 分层架构
```
core -> policy -> runtime -> client / ops
```
- `core` 提供加密原语和验证构建块
- `policy` 评估请求上下文规则,例如 Origin 和 Fetch Metadata
- `runtime` 将这些部分转化为框架就绪的保护流程
- `client` 和 `ops` 通过浏览器生命周期辅助工具和可观测性来扩展系统
## 文档
- [快速开始](./docs/QUICKSTART.md)
- [集成指南](./docs/INTEGRATION_GUIDE.md)
- [API 指南](./docs/API_GUIDE.md)
- [文档索引](./docs/README.md)
- [规范](./docs/SPECIFICATION.md)
- [安全常见问题解答](./docs/SECURITY_FAQ.md)
- [边界规范](./docs/BOUNDARY_SPECIFICATION.md)
- [运维手册](./docs/OPERATIONS.md)
- [基准测试](./docs/BENCHMARKING.md)
- [实施计划](./docs/IMPLEMENTATION_PLAN.md)
包指南:
- [core](./packages/core/README.md)
- [policy](./packages/policy/README.md)
- [runtime](./packages/runtime/README.md)
- [client](./packages/client/README.md)
- [ops](./packages/ops/README.md)
## 许可证
Apache-2.0
标签:API安全, CISA项目, GNU通用公共许可证, HMAC, JSON输出, MITM代理, Node.js, NPM包, OSV-Scalibr, TypeScript, 令牌安全, 前端安全, 安全插件, 完整性校验, 密码学, 手动系统调用, 无状态, 暗色界面, 来源验证, 网络安全, 自动化攻击, 请求意图验证, 请求验证, 跨站请求伪造(CSRF)防护, 身份验证与授权, 防重放攻击, 隐私保护, 零信任架构