brianlmoon / php-safelist-check
提供了一种简单的方法来检查地址或域名是否在安全名单上
2.0.0
2020-08-21 14:31 UTC
Requires
- php: >=5.3.0
- jycr753/ip-utils: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^4.8
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的测试用例足够充分,因此对此库的这些函数只进行了简单测试。