ninjaphp/ninja

一个简单但非常有效的PHP防火墙。它允许您轻松阻止大多数SQL和XSS注入。它还包括IP的白名单/黑名单和漏斗桶算法请求限制。

0.1.1 2014-07-03 05:55 UTC

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_sizebucket_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文件。