正文

PingWAF 是面向现代 Web 应用的高性能分布式安全防护平台(WAF),您的私有部署Cloudflare。让 Web 应用安全回归自主可控,让反向代理与安全防护融为一体。

PingWAF 基于 Rust 构建,是一款开源 Web 应用防火墙(WAF)与反向代理安全平台。项目以 Pingap 和 Cloudflare Pingora 为底层代理技术,融合语义级攻击检测、智能规则匹配、CC 防护、Bot 管理、访问控制、分布式策略同步及可视化安全运营能力,为企业网站、API 服务、SaaS 平台及互联网业务提供一套可自主部署、集中管理、灵活扩展的边缘安全解决方案。

与传统依赖独立 WAF 设备或在现有反向代理上堆叠安全插件的方案不同,PingWAF 将反向代理、Web 安全检测、流量控制、TLS 证书管理和安全运营整合在统一架构中。

用户无需在多个独立系统之间切换,即可完成网站接入、源站管理、安全策略配置、攻击检测、流量分析和边缘节点运维。

架构概览

项目采用开源 Apache 2.0 许可证,支持 Docker Compose 部署、单机一体化运行和分布式边缘部署,适合希望将安全能力部署在自身基础设施中的企业和技术团队。


一、核心定位:不只是 WAF,更是一套完整的边缘安全网关

现代 Web 业务面临的安全威胁已经不再局限于传统 SQL 注入和跨站脚本攻击。

自动化扫描、恶意爬虫、CC 攻击、API 滥用、异常访问、恶意 IP、源站暴露以及复杂的业务访问控制,都需要在请求到达后端应用之前进行识别和处理。

PingWAF 将这些能力整合在统一的数据处理链路中:

  • 反向代理: 负责客户端接入、TLS 终止、请求转发和源站连接管理。
  • Web 应用防火墙: 对 HTTP 请求进行归一化、攻击特征检测、表达式匹配和异常评分。
  • 访问控制: 基于 IP、地域、ASN、请求路径和请求特征执行访问策略。
  • CC 与 Bot 防护: 识别异常访问行为,通过限流及人机挑战控制自动化流量。
  • 流量管理: 提供源站池、负载均衡、路由分发、边缘缓存和请求响应改写。
  • 安全运营: 通过统一控制台管理站点、策略、日志、指标和边缘 Agent。

核心目标是让安全防护成为反向代理链路的一部分,而不是额外增加一套难以维护的独立系统。

二、核心安全能力

1. 多层语义级 Web 攻击检测

PingWAF 不仅依赖简单的字符串匹配,而是构建了多阶段 WAF 检测引擎。

检测流程包括:

请求归一化 → 特征匹配 → 自定义表达式规则 → 异常评分与最终裁决

主要检测能力包括:

  • SQL 注入(SQL Injection)
  • 跨站脚本攻击(XSS)
  • 远程代码执行(RCE)
  • 命令注入(Command Injection)
  • 路径穿越(Path Traversal)
  • 恶意请求特征及其他异常输入

底层采用 libinjection、Aho-Corasick 多模式匹配和表达式规则引擎,结合请求归一化处理,提高对不同编码形式和攻击载荷变形的识别能力。

支持托管规则集,管理员可以按站点选择启用不同类别的防护规则,减少不必要的规则开销。

2. 灵活的自定义防护规则

PingWAF 提供接近 Cloudflare 风格的规则表达式系统。

管理员可以通过条件表达式定义业务级安全策略,例如:

http.request.uri.path contains "/admin"
and ip.src not in {10.0.0.0/8}

可以围绕以下维度构建规则:

  • 请求路径及 URL 参数
  • HTTP Header
  • Cookie
  • 客户端 IP 和 CIDR 网段
  • 请求方法及其他请求属性
  • 国家、ASN 等网络属性

每条规则可以根据命中情况选择不同处理方式:

动作

说明

Pass

放行请求

Monitor

记录命中,不执行拦截

Block

直接拦截

Challenge

触发人机验证

通过表达式和动作组合,既可以实现通用攻击拦截,也可以实现针对具体业务接口的个性化安全策略。

3. CC 防护与人机挑战

针对高频访问、自动化请求和恶意流量,PingWAF 提供多维度限流及挑战机制。

支持按照以下维度执行访问速率控制:

  • 客户端 IP
  • Host 和请求路径
  • 国家和 ASN
  • 自定义 HTTP Header
  • Cookie
  • URL 查询参数

当请求达到设定条件时,可以执行限流、拦截或挑战。

挑战能力包括:

  • JavaScript 5 秒盾
  • Proof of Work(工作量证明)
  • 交互式人机验证
  • HMAC 签名验证 Cookie

对于允许使用挑战机制的业务,可以在不直接拒绝所有异常请求的情况下,增加自动化攻击者的访问成本。

4. Bot 与自动化流量管理

随着搜索引擎爬虫、AI 爬虫、自动化采集程序和恶意扫描工具不断增加,网站需要更细粒度的机器人访问管理。

PingWAF 支持:

  • 已验证 Bot 白名单
  • 已知浏览器 User-Agent 识别
  • 对其他未知客户端配置独立处理策略
  • 与 IP、访问规则及速率限制组合使用

适用于需要保护 API 接口、限制恶意采集、管理搜索引擎与自动化访问流量的网站。

5. IP、地域与网络访问控制

PingWAF 提供多层访问控制能力。

IP 访问管理

支持 IP、CIDR 网段黑白名单,以及拦截、放行和挑战等处理动作。

支持 CSV 批量导入和命名 IP 规则,方便维护企业办公网、合作伙伴和可信网络。

全局 IP 分组

可以建立全局 IP 分组,并通过订阅源定期同步 CIDR 列表,减少不同站点之间重复维护访问规则的工作量。

GeoIP 与 ASN 控制

可以依据国家、地区和自治系统号(ASN)实施访问限制,适用于有明确业务区域要求、需要控制海外访问或管理特定网络来源的应用。


三、完整的反向代理与流量管理能力

PingWAF 的一个重要特点是:WAF 与反向代理由同一套数据面架构提供,而不是相互独立的两个产品。

1. 多源站池与负载均衡

支持将多个源站组织成独立 Origin Pool。

负载均衡算法包括:

  • Round Robin:加权轮询
  • Least Connections:最少连接
  • Random:随机选择
  • Consistent Hash:一致性哈希

支持按照客户端 IP、URL、Path、Header、Cookie 和 Query 参数等维度进行哈希分配。

适合多源站部署、应用集群、API 网关和多业务入口场景。

2. 灵活的请求路由

管理员可以按照请求路径将流量分发到不同的源站池。

支持:

  • 精确路径匹配
  • 路径前缀匹配
  • 正则表达式匹配
  • 基于 IP 分组的路由限制

例如:

/api/*       → API 源站池
/static/*    → 静态资源源站池
/admin/*     → 管理系统源站池

也可以让同一个 URL 根据访问来源进入不同的源站池。

3. 边缘缓存

内置 HTTP 边缘缓存,支持:

  • 站点级磁盘缓存配额
  • LRU 缓存淘汰
  • Edge TTL
  • Browser TTL
  • Stale-While-Revalidate

适用于静态资源、图片、公共页面和可缓存 API 响应。

通过合理的缓存策略,可以减少重复回源请求,降低源站负载及网络传输成本。

4. 请求与响应改写

支持在代理链路中执行常见的请求和响应处理:

  • HTTP Header 增删与修改
  • URL Path 改写
  • Query 参数修改
  • HTTP 状态码处理
  • 请求与响应内容查找替换

同时支持自定义错误页面,针对 WAF 拦截、站点维护和其他边缘生成的响应返回统一页面。

管理员还可以暂停指定站点,暂停期间返回维护页面,而不必直接删除站点或源站配置。


四、TLS 自动化与企业级证书管理

HTTPS 已经成为现代 Web 服务的基础能力。PingWAF 将证书管理整合进边缘代理系统。

1. 自动证书签发与续期

支持 ACME / Let’s Encrypt 自动申请和续期。

支持:

  • HTTP-01 验证
  • DNS-01 验证
  • 阿里云 DNS
  • Cloudflare DNS
  • 腾讯云 DNSPod
  • 华为云 DNS
  • 手动 DNS 验证

可以为不同站点独立管理证书,并通过控制台查看证书状态及 ACME 事件。

2. TLS 安全策略

支持强制 HTTPS、HSTS 和源站 HTTPS 证书校验配置。

管理员可以在全局、站点以及源站池层级管理回源证书验证策略,并根据内部 CA、自签名证书和公网可信证书的使用情况进行配置。

3. 双向 TLS(mTLS)

对于需要加强客户端身份验证的业务,PingWAF 支持双向 TLS。

可以在控制台生成或导入 CA,签发客户端证书,并管理证书的吊销状态。

适用于:

  • 企业内部 API
  • 服务间通信
  • 合作伙伴专属接口
  • 高安全等级业务入口

五、分布式架构:集中管理,边缘执行

PingWAF 在架构设计上将控制平面(Control Plane)与数据平面(Data Plane)分离。

这是其区别于简单单机 WAF 的重要特性。

控制平面 Control Plane

集中管理:

  • 站点与域名
  • 源站池和路由
  • WAF 规则与安全策略
  • 证书及 TLS 配置
  • Agent 注册与管理
  • 日志和监控指标
  • 配置版本与回滚

数据平面 Data Plane

由一个或多个 Agent 组成,部署在实际流量入口。

每个 Agent 负责:

  • 接收 HTTP/HTTPS 请求
  • 执行 WAF 安全检测
  • 实施访问控制和限流
  • 完成反向代理及源站转发
  • 本地缓存规则
  • 上报日志和运行指标

控制面与数据面通过持久化 gRPC 双向流通信。

规则变更后,控制面可以将新的配置推送给边缘 Agent,不需要逐台登录服务器修改规则,也不需要通过人工重启整个代理集群来完成普通策略更新。

两种部署模式

模式一:All-in-One 一体化部署

控制面和数据面运行在同一进程。

          Internet
              │
              ▼
         ┌───────────┐
         │ PingWAF   │
         │           │
         │ WAF       │
         │ Proxy     │
         │ Dashboard │
         │ API       │
         └─────┬─────┘
               │
               ▼
           Origin

适合:

  • 单台服务器
  • 中小型网站
  • 独立业务系统
  • 快速部署与功能评估

模式二:Distributed 分布式部署

控制面和多个边缘 Agent 独立运行。

             管理员
               │
               ▼
       ┌───────────────┐
       │ Control Plane │
       │               │
       │ Dashboard     │
       │ API           │
       │ PostgreSQL    │
       └───────┬───────┘
               │
             gRPC
       ┌───────┼───────┐
       │       │       │
       ▼       ▼       ▼
    Agent 1 Agent 2 Agent 3
       │       │       │
       ▼       ▼       ▼
     源站集群 / 不同地域业务

适合:

  • 多机房和多地域部署
  • 多入口反向代理集群
  • 多个业务团队共享统一安全管理平台
  • 需要集中策略管理的边缘节点网络

六、可视化安全运营与监控

PingWAF 内置 React 管理控制台,不需要额外部署独立的前端管理服务。

通过统一控制台完成日常运维。

流量分析

查看请求趋势、站点流量、状态码分布和访问行为。

安全事件

查看攻击事件、规则命中情况、拦截结果和请求上下文。

请求重放

支持查看请求头、请求体前缀和相关响应信息,并生成可复现的 curl 命令,帮助技术人员快速定位攻击和误拦截问题。

Agent 监控

查看边缘节点在线状态、运行版本、系统指标和配置同步情况。

配置版本管理

保留配置快照,支持逐表差异比较和版本回滚,便于追踪配置变更。

身份管理

支持 JWT 认证、Passkey 通行密钥登录以及多租户隔离。

项目还支持将请求和安全日志发送到 Elasticsearch,满足进一步的日志检索和安全运营需求。


七、技术架构与工程特点

PingWAF 采用现代 Rust 技术栈构建。

技术层

使用技术

主要职责

代理引擎

Pingora / Pingap

高性能 HTTP 反向代理与连接处理

核心语言

Rust

数据面、控制面和 WAF 引擎

WAF 检测

libinjection / Aho-Corasick

攻击检测与多模式匹配

控制面 API

Axum

REST API 与管理接口

RPC 通信

Tonic / gRPC

Agent 注册、配置同步和数据上报

关系数据库

PostgreSQL / SeaORM

站点、规则、用户及配置持久化

日志分析

Elasticsearch(可选)

日志检索与分析

前端

React 19 / TypeScript / Vite

可视化管理控制台

技术架构带来的主要优势:

  • Rust 异步运行时,适合网络 I/O 密集型代理场景。
  • 数据面与控制面分离,方便根据业务规模部署。
  • 规则和策略支持动态同步。
  • 前端管理控制台内嵌,部署组件更加集中。
  • 采用开源技术栈,便于二次开发与系统集成。

八、性能与检测能力

PingWAF 提供了公开的 WAF 测试方案及可复现的测试工具。

根据项目公布的 blazehttp 测试结果:

测试样本包括 33,877 条 HTTP 请求,其中包含 658 条恶意请求和 33,219 条正常请求。

在启用 Strict 严格检测模式及请求体检查的条件下,项目报告的数据为:

测试指标

结果

恶意请求拦截率(全样本口径)

93.8%

可检测样本有效拦截率

96.6%

正常请求受影响比例

0.06%

测试准确率

99.82%

本地回环检测 P95 延迟

约 2 ms

这些指标来自 PingWAF 项目自己的公开测试及回放工具,并非第三方独立认证。性能数据与实际硬件、规则配置、请求体检查模式及业务流量有关,不能直接视为生产环境 SLA。

项目还公开了测试计划、样本选择、测试工具及报告,便于用户自行复现和评估。


九、适用场景

PingWAF 可以应用于多种企业 Web 业务环境。

企业网站与业务门户

为企业官方网站、业务门户和内部管理平台提供统一的 HTTPS 接入、攻击检测、IP 控制和访问日志。

API 网关与微服务入口

保护 REST API 和业务接口,按 IP、请求路径、Header、Cookie 等维度执行访问控制和速率限制。

SaaS 与多租户平台

集中管理不同业务站点与安全策略,在统一控制台内维护多站点的访问规则、源站和边缘节点。

电商与互联网业务

针对登录接口、订单接口、搜索接口和商品 API 等高频入口配置限流、人机挑战和规则防护。

私有化部署与自主可控场景

适用于希望将安全流量处理、日志及策略管理保留在自身数据中心或云服务器中的企业。

多地域和多节点接入

通过控制面与多个 Agent 的分布式部署模式,实现不同地域、机房及业务入口的统一安全策略管理。


十、部署方式与项目开放性

PingWAF 支持:

  • Docker Compose 一体化部署
  • Linux 二进制部署
  • systemd 服务运行
  • Control Plane + 多 Agent 分布式部署
  • 基于 PostgreSQL 的配置与数据管理
  • 可选 Elasticsearch 日志分析

项目采用 Apache License 2.0 开源许可证,允许用户在遵循许可证条款的前提下使用、修改和集成。

项目地址:

GitHub:https://github.com/shuaiZend/PingWAF

官方网站:https://www.pingwaf.com/

快速部署:https://www.pingwaf.com/install/


结语:让安全能力掌握在自己手中

对于现代企业而言,Web 安全不应该只依赖单一的防护规则,也不应该让安全管理变成复杂、割裂且难以维护的基础设施负担。

一个真正适合企业长期使用的 WAF,不仅需要识别攻击,更需要具备高效的请求处理能力、灵活的流量管理能力、清晰的策略管理方式和可持续演进的分布式架构。

PingWAF 将反向代理、Web 应用防火墙、CC 与 Bot 防护、流量管理及集中式安全运营整合为一个统一平台。

无论是单台服务器上的网站防护,还是跨地域、多节点的企业业务入口,都可以根据实际规模选择适合的部署方式。

PingWAF —— 让边缘防护更简单,让业务流量更可控,让基础设施真正自主可控。

立即访问 GitHub,了解项目并开始部署:

https://github.com/shuaiZend/PingWAF