laphilosophia/sigil-security

GitHub: laphilosophia/sigil-security

为现代 Web 应用提供无状态加密请求意图验证的安全框架,超越传统 CSRF 防护,将完整性、来源、时效性和上下文多维条件组合为统一验证策略。

Stars: 0 | Forks: 0

# Sigil Security 为现代 Web 应用程序提供的无状态加密请求意图验证。 Sigil 验证的远不止“这个请求是否带有 token?”。它结合了加密完整性、请求来源、新鲜度以及可选的重放保护,使得状态变更请求既真实又具有上下文有效性。 [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/35e9465a33150755.svg)](https://github.com/laphilosophia/sigil-security/actions/workflows/github-code-scanning/codeql) [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c7c26559a8150757.svg)](https://github.com/laphilosophia/sigil-security/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/%40sigil-security%2Fruntime?label=npm)](https://www.npmjs.com/package/@sigil-security/runtime) [![License](https://img.shields.io/github/license/laphilosophia/sigil-security)](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)防护, 身份验证与授权, 防重放攻击, 隐私保护, 零信任架构