brianlmoon/php-safelist-check

提供了一种简单的方法来检查地址或域名是否在安全名单上

2.0.0 2020-08-21 14:31 UTC

This package is auto-updated.

Last update: 2024-09-21 23:40:37 UTC


README

这是一个https://github.com/Jalle19/php-whitelist-check的分支,用于更改隐藏偏见术语。

一种现代且简单的方法,用于验证IP地址和域名是否在安全名单上。它支持IPv4和IPv6地址、CIDR子网以及域名和通配符域名。

需求

  • PHP 5.3或更高版本

用法

Check::safelist()方法接受一个定义数组,这些定义将构成安全名单。这些定义可以是字符串(将解析为其相应的对象)或对象。

使用Check::check($value)方法检查指定的值是否与当前安全名单匹配。如果值与任何定义匹配,则方法将返回true。

要创建自己的定义类,只需扩展Safelist\Definition\Definition并实现Safelist\Definition\IDefinition

示例用法

require_once("vendor/autoload.php");

$checker = new Safelist\Check();

try {
	$checker->safelist(array(
		'10.0.3.1',
		'10.0.0.0/16',
		'2001:db8:100:934b::3:1',
		'2001:db8:100:934b::/64',
		'*.example.com',
		'localhost',
		new Safelist\Definition\Domain('vpn.work.com'),
	));
}
catch (InvalidArgumentException $e) {
	// thrown when an invalid definition is encountered
}

$checker->check('10.0.1.1'); // true
$checker->check('10.1.1.1'); // false
$checker->check('2001:db8:100:934b::210:2'); // true
$checker->check('another.example.com'); // true

许可证

此库根据BSD 2-Clause许可证授权

致谢

此库依赖于xrstf/ip-utils的IP相关功能。它还假定ip-utils的测试用例足够充分,因此对此库的这些函数只进行了简单测试。