fyre / csp
内容安全策略库。
v2.1.2
2024-06-29 06:51 UTC
Requires
- fyre/middleware: ^2.0
- fyre/server: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreCSP 是一个免费的、开源的 PHP 内容安全策略库。
目录
安装
使用 Composer
composer require fyre/csp
在 PHP 中
use Fyre\Security\CspBuilder;
方法
添加头部信息
向 ClientResponse 添加 CSP 头部信息。
$response是一个 ClientResponse。
$newResponse = CspBuilder::addHeaders($response);
清除
清除所有策略。
CspBuilder::clear();
创建策略
创建一个 策略。
$key是一个表示策略键的字符串,可以是CspBuilder::DEFAULT或CspBuilder::REPORT之一。$directives是一个包含要添加的指令的数组,默认为 []。
CspBuilder::createPolicy($key, $directives);
获取策略
获取一个 策略。
$key是一个表示策略键的字符串,可以是CspBuilder::DEFAULT或CspBuilder::REPORT之一。
$policy = CspBuilder::getPolicy($key);
获取所有策略
获取所有策略。
$policies = CspBuilder::getPolicies();
获取 Report-To
获取 Report-To 值。
$reportTo = CspBuilder::getReportTo();
检查策略
检查是否存在策略。
$key是一个表示策略键的字符串,可以是CspBuilder::DEFAULT或CspBuilder::REPORT之一。
$hasPolicy = CspBuilder::hasPolicy($key);
设置策略
设置一个策略。
$key是一个表示策略键的字符串,可以是CspBuilder::DEFAULT或CspBuilder::REPORT之一。$policy是一个 策略。
CspBuilder::setPolicy($key, $policy);
设置 Report-To
设置 Report-To 值。
$reportTo是一个包含 Report-To 值的数组。
CspBuilder::setReportTo($reportTo);
策略
添加指令
向指令添加选项。
$directive是一个表示指令的字符串。$value是一个字符串,或一个包含要添加的值的字符串数组。对于不需要值的指令,您可以将其设置为 true 或 false 以指示是否包含该指令。
$newPolicy = $policy->addDirective($directive, $value);
获取指令
获取一个指令的选项。
$directive是一个表示指令的字符串。
$options = $policy->getDirective($directive);
获取头部信息
获取头部字符串。
$header = $policy->getHeader();
检查指令
确定是否存在指令。
$directive是一个表示指令的字符串。
$hasDirective = $policy->hasDirective($directive);
删除指令
删除一个指令。
$directive是一个表示指令的字符串。
$newPolicy = $policy->removeDirective($directive);
中间件
use Fyre\Security\Middleware\CspMiddleware;
$options是一个包含中间件选项的数组。default是一个包含策略指令的数组,默认为 []。report是一个包含仅报告指令的数组,默认为 null。reportTo是一个包含 Report-To 头部值的数组,默认为 []。
$middleware = new CspMiddleware($options);
处理
$request是一个 ServerRequest。$handler是一个 RequestHandler。
$response = $middleware->process($request, $handler);
此方法将返回一个 ClientResponse。