Coraza Caddy Docker 实验证据,包含固定组件版本、镜像摘要、6 个正常 HTTP 200、4 个 HTTP 403 与 CRS 规则 ID。
固定版本 Coraza 栈在本次 localhost 实验中匹配全部 10 个预期结果:6 个正常请求返回 200,4 个受控 SQLi/XSS 请求返回 403。

    实验状态

    对象
    Coraza 3.7.0 / coraza-caddy 2.5.0 / Caddy 2.11.2 / OWASP CRS 4.25.0
    状态
    已完成动手实测
    更新
    2026-07-26

    证据原则

    WAFWiki 会区分已验证的动手实测、冒烟实测、架构图和方法论说明。任何本地实验都只证明记录环境中的有限路径,不代表完整生产就绪。

    环境

    可复现信息

    宿主运行环境

    macOS aarch64 上的 Docker Desktop 29.2.0,分配 10 CPU 与 7.65 GiB 内存

    Caddy 构建

    使用 xcaddy 构建 Caddy 2.11.2,并加入 coraza-caddy 2.5.0

    WAF 引擎

    Coraza 3.7.0,内嵌 coraza-coreruleset 4.25.0

    镜像摘要

    sha256:decfd7324ee3f377d80e3e41b7f7db4be500c615a6ee2f80e8de8a565e909d23

    上游服务

    同一隔离 Docker 网络中的 mccutchen/go-httpbin:2.21.0

    本地端口

    上游 127.0.0.1:18180,Coraza 127.0.0.1:18182

    命令

    如何复现实验

    构建固定版本 Caddy 模块镜像

    docker build --provenance=false \
      -t wafwiki/coraza-caddy:2.5.0 \
      docs/lab-fixtures/coraza-caddy

    构建信息应显示 Caddy 2.11.2、coraza-caddy 2.5.0、Coraza 3.7.0 与 coraza-coreruleset 4.25.0。

    运行完整证据实验

    scripts/run-waf-evidence-lab.sh

    脚本只创建 wafwiki-evidence-* 资源,完成请求矩阵、写入证据,并清理自己启动的容器。

    查看 Coraza 请求结果

    awk -F, 'NR == 1 || $1 == "coraza" { print }' \
      docs/lab-evidence/waf-engine-comparison-2026-07-26-requests.csv

    输出 10 条 Coraza 记录,其中 6 条状态为 200,4 条状态为 403。

    观察结果

    本轮动手实测说明了什么

    预期结果

    10 / 10 匹配

    在这组小型请求集中,每一个 Coraza 状态都与预先声明的预期一致。

    正常请求

    6 个返回 200

    普通查询、JSON、邮箱、版本路径、过滤条件和 C++ 搜索词均到达上游。

    受控攻击特征请求

    4 个返回 403

    查询参数与 JSON 字段中的 SQLi-like、XSS-like 字符串均被阻断。

    构建兼容性

    需要 Caddy 2.11.2

    早期使用 Caddy 2.10.2 构建失败,因为 coraza-caddy 2.5.0 要求 Caddy 2.11.2。

    资源快照

    57.2 MiB

    完成请求和延迟采样后 Docker 报告 57.2 MiB;该值不是容量建议。

    Coraza 3.7.0 / coraza-caddy 2.5.0 / Caddy 2.11.2
    OWASP CRS 4.25.0, rule engine on, blocking paranoia level 1
    clean decisions: 6 x HTTP 200
    SQLi/XSS decisions: 4 x HTTP 403
    observed rules: 942100, 941100, 941110, 941160, 949110
    image digest: sha256:decfd7324ee3f377d80e3e41b7f7db4be500c615a6ee2f80e8de8a565e909d23

    证据上下文

    Coraza 结果来自共享且固定版本的测试拓扑。

    两个 WAF 路径使用同一上游、同一请求定义、OWASP CRS 4.25.0、localhost 路由与证据格式;反向代理和引擎仍按设计保持不同。

    可复现 Docker 拓扑:受控 curl 请求分别通过 ModSecurity NGINX 与 Coraza Caddy,再到同一 go-httpbin 上游。

    开放证据

    下载经过安全筛选的结果文件

    文件公开状态矩阵和固定版本摘要,不发布原始容器日志或无关本地数据。

    下载请求矩阵 CSV

    包含引擎、用例、方法、路径、预期状态、实际状态和 curl 时间的 20 条请求结果。

    下载证据摘要 JSON

    包含固定镜像 ID、组件版本、宿主信息、请求结果、延迟样本、资源快照与限制。

    限制

    这个结果不能证明什么

    相关研究

    继续研究 Coraza 3.7.0 / coraza-caddy 2.5.0 / Caddy 2.11.2 / OWASP CRS 4.25.0