PHPackages                             prowendi/hyperf-http-waf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. prowendi/hyperf-http-waf

ActiveLibrary[HTTP &amp; Networking](/categories/http)

prowendi/hyperf-http-waf
========================

A reusable Hyperf HTTP WAF middleware package for PHP 8.2+ with Swoole and OpenSwoole compatibility.

1131↓75%PHP

Since Mar 7Pushed 3mo agoCompare

[ Source](https://github.com/prowendi/hyperf-http-waf)[ Packagist](https://packagist.org/packages/prowendi/hyperf-http-waf)[ RSS](/packages/prowendi-hyperf-http-waf/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

prowendi/hyperf-http-waf
========================

[](#prowendihyperf-http-waf)

`prowendi/hyperf-http-waf` 是一个面向 Hyperf 3.x+ 的独立 Composer WAF 扩展包，提供可复用的 HTTP 中间件、默认规则、真实 IP 解析、日志上报和可扩展规则体系，适配 PHP 8.2+ 与 Swoole / OpenSwoole 长驻内存模型。

特性
--

[](#特性)

- 独立 Composer 包，可直接 `composer require`
- 通过 `ConfigProvider` + 默认配置接入，不绑定业务项目
- 支持全局中间件或路由级中间件注册
- 检测 Client IP / Method / Path / Query / Header / Cookie / Body / Upload / UA / Referer
- 支持 SQLi、XSS、命令执行、路径穿越、LFI、SSRF、恶意扫描器 UA、非法方法、输入规模异常
- 提供 `observe` 与 `block` 两种模式
- 支持白名单、黑名单、可信代理、可信转发头
- 默认日志支持 PSR Logger，未接入时回退 `error_log`
- 请求态数据不进入全局可变静态状态，适合协程与长驻内存

环境要求
----

[](#环境要求)

- PHP 8.2+
- Hyperf 3.x+
- Swoole 或 OpenSwoole 运行时

安装
--

[](#安装)

```
composer require prowendi/hyperf-http-waf
```

本包通过 `composer.json` 的 `extra.hyperf.config` 暴露 `Prowendi\HyperfHttpWaf\ConfigProvider`。标准 Hyperf 包加载流程下会自动发现。

如果宿主项目关闭了包配置自动发现，请显式加载 `Prowendi\HyperfHttpWaf\ConfigProvider::class`。

发布或复制配置
-------

[](#发布或复制配置)

如果宿主项目安装了 `hyperf/publisher`，可执行：

```
php bin/hyperf.php vendor:publish waf-config
```

未安装发布命令时，直接复制：

```
vendor/prowendi/hyperf-http-waf/publish/waf.php

```

到宿主项目：

```
config/autoload/waf.php

```

全局中间件接入
-------

[](#全局中间件接入)

在宿主项目的 `config/autoload/middlewares.php` 中注册：

```
