BabaVictim/safe-site-preflight
GitHub: BabaVictim/safe-site-preflight
零依赖的 GitHub Action 与 Node.js CLI,针对单个公开网站 URL 执行有边界的只读预检,覆盖 HTTPS、响应头、HTML 元数据及基础性能指标。
Stars: 0 | Forks: 0
# Safe Site Preflight
[](https://github.com/BabaVictim/safe-site-preflight/actions/workflows/test.yml)
一个零依赖的 GitHub Action 和 Node.js CLI,用于针对单个公开网站 URL 执行有边界的只读检查。
这是一次发布前的预检,而不是漏洞扫描器。
## 使用 Action
```
permissions:
contents: read
steps:
- uses: BabaVictim/safe-site-preflight@v1
with:
url: https://example.com/
```
Action 接受以下参数:
- `url` — 必填,端口 80 或 443 上的公开 HTTP(S) URL。
- `json` — 可选,设为 `"true"` 可输出机器可读的 JSON;默认为
`"false"`。
当审计完成且没有未通过的检查时,该步骤即视为成功。警告不会
导致步骤失败。无效或不安全的目标会返回退出码 `1`;完成审计但有
未通过的检查会返回退出码 `2`。
对于不可变的依赖,请固定完整的 commit SHA,而不是使用可变动的
`v1` 标签。
## 运行 CLI
无需安装步骤或运行时依赖:
```
node tools/site-preflight.mjs https://example.com/
node tools/site-preflight.mjs --json https://example.com/
```
运行 `node tools/site-preflight.mjs --help` 以查看资源限制选项和
完整的退出码文档。
## 检查项目
审计报告包括:
- HTTPS 使用情况、最终状态码以及有边界的重定向。
- DNS、首字节、下载和总请求时间。
- HTML content type 以及可见的响应截断。
- Title、description、canonical URL、viewport、language 和 H1 数量。
- 轻量级的表单标签和图片 alt 文本启发式检查。
- HSTS、CSP、`nosniff`、frame protection、Referrer Policy 和 Permissions
Policy headers。
这些是实用的启发式规则,并非对可访问性、SEO、
性能或安全性的认证。
## 网络安全性
Action 仅接受标准端口的 HTTP(S),拒绝凭据和
localhost 风格的名称,并阻止私有、环回、链路本地、文档、
多播和保留的地址范围。每个目标和重定向在连接前都会被
解析和验证。经过验证的 DNS 应答会被固定,以
降低重绑定风险。
请求不使用任何 cookies 或凭据。重定向、响应字节数和耗时
都是有边界的。该工具绝不会提交表单、执行页面脚本、爬取
链接、探测端口或向目标写入数据。
## 测试与来源
```
npm ci
npm test
```
测试使用 Node 的内置运行器,并且不访问网络。这个
专属仓库是从以下经过审查的实现中提取出来的:
[`BabaVictim/website-repair-sprint@14554b9`](https://github.com/BabaVictim/website-repair-sprint/commit/14554b97953c8c94dc2a099611957d4fff8d982d)。
安全报告应提交至
[私人安全通报](https://github.com/BabaVictim/safe-site-preflight/security/advisories/new),
而不是公开 issue。
需要一份人类可读的公开网站报告或固定范围的修复?请参阅
[支持比特币支付的网站预检与修复服务](https://babavictim.github.io/website-repair-sprint/#price)。
## License
MIT。
标签:GitHub Action, GNU通用公共许可证, MITM代理, Node.js, SEO检查, Web审计, 前端检查, 数据可视化, 自定义脚本