denyfirst/denyfirst
GitHub: denyfirst/denyfirst
一套以「默认拒绝」为架构核心、零日志零追踪的隐私优先安全工具集,目前开发中包含 TLS 检查器和元数据清除器。
Stars: 0 | Forks: 0
# denyfirst
默认拒绝的安全工具。无日志,无追踪,无第三方。
## 这是什么
一小套安全和隐私工具,建立在一个规则之上:**除非明确需要,否则一律拒绝。**
该规则不是一句口号。它是实际的架构:
- 没有分析。连自托管的分析也没有。完全没有。
- 没有 cookie。没有本地存储。没有会话标识符。
- 没有第三方请求。没有 CDN,没有 Web 字体,没有托管库。打开 DevTools 和网络标签页,你会看到只有发往此域名的请求。
- 没有关于你扫描内容的日志。请求处理完即丢弃。
- 无需账户,无需注册,无需提供电子邮件。
## 如何验证这一点
不要只听我们的一面之词。
**在你的浏览器中。** 在使用工具之前打开网络标签页。每个请求都应该指向同一个源。如果你看到发往其他地方的请求,那就是一个 bug —— 请提交一个 issue。
**在源代码中。** 每个工具都在这里。只要任务允许,Go 后端仅依赖标准库,并且每个第三方模块都在 `go.mod` 中列出,同时在 `docs/dependencies.md` 中附有说明解释其存在的原因。前端没有构建步骤:你接收到的 JavaScript 就是此仓库中的 JavaScript。
**在构建过程中。** 版本发布由 GitHub Actions 从带标签的 commit 构建而成。工作流位于 `.github/workflows/`,日志是公开的,并且 artifacts 已签名。你可以从相同的 tag 重新构建并比较哈希值。
## 工具
目前尚未发布任何内容。首个版本正在开发中:
- **TLS inspector** —— 证书链、协议版本、加密套件、HSTS、CAA 记录、证书透明度。服务端处理,不保留任何内容。
- **Metadata stripper** —— EXIF 和文档元数据,完全在你的浏览器中查看和移除。文件永远不会离开你的设备。
## 设计约束
这些都是既定的决策,而非愿景。它们限制了在这里可以构建什么。
**默认客户端运行。** 如果一个工具可以在浏览器中运行,它就在浏览器中运行。只有在任务需要访问网络时才进行服务端操作 —— 因为 TLS 握手无法从页面中执行。
**严格的 Content-Security-Policy。** 没有 `unsafe-inline`,没有 `unsafe-eval`,没有外部源。这排除了大部分现代前端工具链,而这正是目的所在。
**拒绝私有目标。** 建立外部连接的工具会拒绝 loopback、RFC 1918、link-local 和保留范围。一个可以连接到任何地方的扫描器就是一个披着漂亮界面的 SSRF 代理。参见 `internal/safedial`。
**极小的依赖面。** 每一个依赖项都是你代表用户去信任的一方。每一个依赖项都必须有存在的理由。
## 自行运行
发布此项目的全部意义在于,你不必信任托管版本。
```
git clone https://github.com/denyfirst/denyfirst
cd denyfirst
go build ./cmd/denyfirst
./denyfirst
```
需要 Go 1.25.12 或更高版本。启动时不需要数据库,不需要配置文件,也不需要环境变量。
## 许可证
GNU Affero General Public License v3.0。详见 `LICENSE`。
选择 AGPL 而不是 MIT 出于一个特定的原因:如果你将此软件的修改版本作为网络服务运行,你必须公开你的修改。宽松的许可证会允许某人拿走这些工具,加上我们移除的追踪功能,并在不公开的情况下将其托管运行。该许可证是承诺的一部分。
标签:EVTX分析, Go, JSONLines, Ruby工具, TLS检查, Web安全, 元数据清理, 数据可视化, 日志审计, 网络安全, 蓝队分析, 隐私保护, 零信任