oshp/oshp-validator
GitHub: oshp/oshp-validator
这是一个基于 Venom 测试套件的工具,用于根据 OWASP 安全头项目(OSHP)的建议验证 HTTP 安全响应头配置是否合规。
Stars: 136 | Forks: 24
# OWASP Secure Headers Project 验证器
[](https://github.com/oshp/oshp-validator/actions/workflows/validate-tests-suite.yml)
✅ [Venom](https://github.com/ovh/venom) 测试套件,用于根据 [OSHP 建议](https://owasp.org/www-project-secure-headers/#div-bestpractices) 验证 [HTTP 安全响应头](https://owasp.org/www-project-secure-headers/#div-headers) 配置。
🎯 目标是以一种灵活/可移植的方式提供验证非面向互联网的应用程序配置的方法。
💡 您可以使用提供的测试套件作为基础,根据您的上下文进行调整。
📑 测试套件文件的语法使用此 [yamllint](https://yamllint.readthedocs.io) 配置 [文件](.yamllint) 进行验证。
# 为什么选择 venom?
🤔 我们选择利用该工具的原因如下:
* 它是免费且开源的。
* 它不需要任何安装:提供了独立的二进制文件,但如果您希望对执行的二进制文件进行完全控制,也可以轻松编译它。
* 它是跨平台的。
* 它使用描述性方法来定义 [测试套件](tests_suite.yml),因此不需要任何代码(或编码技能)来添加/更新测试。
# 测试套件
📋 它通过此 [单个文件](tests_suite.yml) 提供。
💻 [Visual Studio Code](https://code.visualstudio.com/) 用于测试套件开发。为项目提供了一个 Visual Studio Code [工作区文件](project.code-workspace),其中包含 [推荐的扩展](.vscode/extensions.json)。
📐 支持以下参数:
| **参数名称** | **描述** | **默认值** | **必填** |
|----------------------------|------------------------------------------------------------------------------------------------------------------|-----------|----------|
| target_site | 必须测试其头配置的站点的 URL。 | "" | 是 |
| logout_url | 应用程序注销端点的相对路径。用于测试头 "Clear-Site-Data" 的配置。 | "" | 否 |
| request_timeout_in_seconds | 等待目标应用程序响应的最长时间(秒)。 | 20 | 否 |
# 如何使用它?
您可以使用本地安装的 venom 或容器镜像中的 venom。
## 本地 Venom
💻 请按照以下步骤操作。
1. 获取适用于您平台的 [venom 版本](https://github.com/ovh/venom#installing)。
2. 运行与您的上下文对应的以下命令之一:
```
# 使用默认值
$ venom run --var="target_site=https://mysite.com" tests_suite.yml
# 使用 parameter 为测试 header "Clear-Site-Data" 指定 logout page
$ venom run --var="target_site=https://mysite.com" --var="logout_url=/logout" tests_suite.yml
```
📽️ 实时使用示例(参数 `internet_facing` 不再存在,有关说明请参见 [此处](https://github.com/OWASP/www-project-secure-headers/pull/193)):
[](demo.mp4)
💡 **提示:** 当测试失败或当您尝试更新但您的版本已是最新版本时,Venom 返回非零代码。因此,为了防止脚本失败,请在命令末尾添加 `|| true`。
## 容器镜像
💻 请按照以下步骤操作。
```
docker run --mount type=bind,source=$(pwd)/tests_suite.yml,target=/workdir/tests_suite.yml ovhcom/venom:latest run --var="target_site=https://mysite.com" tests_suite.yml
```
# 报告
📖 venom 文档的此 [部分](https://github.com/ovh/venom#export-tests-report) 描述了集成到 CI/CD 平台所支持的不同格式。
# 测试套件模拟服务
🌍 Python 脚本 [test_suite_mock.py](test_suite_mock.py) 提供了一个模拟端点,该端点返回 HTTP 响应,其中将设置 [OSHP](https://owasp.org/www-project-secure-headers/) 推荐的所有 HTTP 响应头。
📦 它会自动部署在 `https://oshp-validator-mock.onrender.com` 上,并且此 [CI 工作流](.github/workflows/validate-tests-suite.yml) 使用它来测试 venom 测试套件。
# Venom 中头名称的大小写敏感性
📖 请参见 [此处](https://github.com/ovh/venom/pull/570),从版本 [1.2.0](https://github.com/ovh/venom/releases/tag/v1.2.0) 开始。
标签:HTTP安全, Venom, Web安全, YAML, yamllint, 安全头部, 安全库, 安全配置验证, 开源安全工具, 蓝队分析, 请求拦截, 逆向工具, 逆向工程平台, 非暴露应用安全