ninjaphp / ninja
一个简单但非常有效的PHP防火墙。它允许您轻松阻止大多数SQL和XSS注入。它还包括IP的白名单/黑名单和漏斗桶算法请求限制。
0.1.1
2014-07-03 05:55 UTC
Requires
- php: >=5.4.0
- predis/predis: >=0.8.0
- symfony/http-foundation: >=2.2.0
This package is not auto-updated.
Last update: 2024-09-24 02:54:24 UTC
README
Ninja是一个非常简单的防火墙,您可以配置它执行令人惊叹的操作。它仍在开发中,但可能已经可以使用。
如何配置
Ninja使用漏斗桶算法来限制请求。您可以教Ninja识别危险,并在需要的地方阻止它们。
<?php use \Ninja\Ninja; Ninja::addHazard( 'throttle', Ninja::HAZARD_TYPE_THROTTLE, function (\Symfony\Component\HttpFoundation\Request $request) { return true; }, array( 'bucket_size' => 10, 'bucket_leak' => 1 ) );
当危险返回为真时,意味着已经检测到危险。要检测危险,您需要检索请求对象。您可以检查各种内容。除了 bucket_size 和 bucket_leak 之外,您还可以指定攻击发生时的 timeout。
您还应给Ninja提供一些需要保护的内容。
<?php use Ninja\Ninja; // ... Request::enableHttpMethodParameterOverride(); $request = Request::createFromGlobals(); // Send the Ninjas Ninja::prepare(__DIR__ . '/../app/config/ninja.php', $request); Ninja::protect(); $response = $kernel->handle($request); // Inject the Ninja in the response Ninja::inject($response); $response->send(); $kernel->terminate($request, $response);
法律声明
您可以在本项目中找到LICENSE文件。