大维帕斯托雷/slim-restrict-route

一个用于限制访问您路由的IP地址的Slim中间件

v0.3.1 2018-06-23 12:04 UTC

This package is auto-updated.

Last update: 2024-08-26 07:51:11 UTC


README

Latest version Build Status Coverage Status Quality Score Total Downloads PSR2 Conformance

一个用于限制访问您路由的IP地址的Slim中间件。它内部使用Respect/Validationrka-ip-address-middlewareIp验证器。

安装

通过Composer

$ composer require davidepastore/slim-restrict-route

需要Slim 3.0.0或更高版本。

用法

您还需要注册RKA\Middleware\IpAddress中间件来正确读取IP地址。在大多数情况下,您希望为单个路由注册DavidePastore\Slim\RestrictRoute,但是,由于它是中间件,您也可以为所有路由注册它。

按路由注册

$app = new \Slim\App();

$app->add(new RKA\Middleware\IpAddress());

$options = array(
  'ip' => '192.*.*.*'
);

$app->get('/api/myEndPoint',function ($req, $res, $args) {
  //Your amazing route code
})->add(new \DavidePastore\Slim\RestrictRoute\RestrictRoute($options));

$app->run();

为所有路由注册

$app = new \Slim\App();

$app->add(new RKA\Middleware\IpAddress());

$options = array(
  'ip' => '192.*.*.*'
);

// Register middleware for all routes
// If you are implementing per-route checks you must not add this
$app->add(new \DavidePastore\Slim\RestrictRoute\RestrictRoute($options));

$app->get('/foo', function ($req, $res, $args) {
  //Your amazing route code
});

$app->post('/bar', function ($req, $res, $args) {
  //Your amazing route code
});

$app->run();

IP地址

您可以使用在\RestrictRoute提供的options中不同的ip值来限制路由

  • PHP提供的有关FILTER_VALIDATE_IP的任何过滤器(例如:FILTER_FLAG_NO_PRIV_RANGE);
  • 星号(*)以过滤给定子网中的IP(例如:192.*);
  • 范围(-)以过滤给定范围内的IP(例如:192.168.0.0-192.168.255.255);
  • 单个IP(例如:192.168.0.1-192.168.0.1);
  • 用于过滤IP的范围数组(例如:array('192.0.0.0-192.255.255.255', '178.0.0.*'))。

您可以在Ip验证器的文档和其单元测试类中找到更多语法信息。

测试

$ phpunit

贡献

有关详细信息,请参阅CONTRIBUTING

致谢