triopsi / banned-tool
CakePHP 的封禁工具插件。快速封禁 IP 地址。
v1.2.0
2023-12-15 10:25 UTC
Requires
- php: >=8.2
- cakephp/cakephp: ^4.4
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.3
README
快速封禁 IP 地址。这是一个 CakePHP 4.x 的插件。
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require triopsi/banned-tool
数据库迁移
在 CakePHP 控制台中运行以下命令以使用迁移插件创建表:
bin/cake migrations migrate -p BannedTool
加载插件
通过 Load 任务,您可以在 config/bootstrap.php 中加载插件。您可以通过运行以下命令来实现:
bin/cake plugin load BannedTool
手动
将以下代码放入 bootstrap 方法中的 application.php 文件中:
$this->addPlugin('BannedTool');
安装中间件
要使用此工具,您需要将以下代码片段添加到 Application.php 中的中间件部分。通常不建议将 Banned Middleware 放在第一位。
use BannedTool\Middleware\BannedMiddleware; use Cake\View\View; public function middleware( MiddlewareQueue $middlewareQueue ): MiddlewareQueue { ... ->add( new BannedMiddleware( array( 'className' => View::class, 'templatePath' => 'Error', 'statusCode' => 403, 'templateLayout' => false, 'templateFileName' => 'banned', 'templateExtension' => '.php', 'contentType' => 'text/html', ) ) ... )
自定义
请确保您在 'templates' . DS . 'Error' . DS
中有一个名为 banned.php
的模板文件。
配置
- 'className' => View::class,
- 'templatePath' => 'Error',
- 'statusCode' => 403,
- 'templateLayout' => false,
- 'templateFileName' => 'banned',
- 'templateExtension' => '.php',
- 'contentType' => 'text/html'
这些可以用来调整封禁页面的内容。
封禁组件
此组件在现有功能之上添加了功能
- 将 IP 地址添加到封禁列表
- 从封禁列表中删除 IP 地址
- 检查 IP 地址是否在封禁列表中
- 列出所有封禁的 IP 地址
如何设置
// In your App Controller Class (src/Controller/AppController) public function initialize() { ... $this->loadComponent('BannedTool.Banned'); }
封禁命令
这应该是启用和禁用您应用程序维护模式的首选方式。
命令
- add ban <ip_addresses>
- rm ban <ip_addresses>
- list bans