fyre/csp

内容安全策略库。

v2.1.2 2024-06-29 06:51 UTC

This package is auto-updated.

Last update: 2024-09-29 07:20:05 UTC


README

FyreCSP 是一个免费的、开源的 PHP 内容安全策略库。

目录

安装

使用 Composer

composer require fyre/csp

在 PHP 中

use Fyre\Security\CspBuilder;

方法

添加头部信息

ClientResponse 添加 CSP 头部信息。

$newResponse = CspBuilder::addHeaders($response);

清除

清除所有策略。

CspBuilder::clear();

创建策略

创建一个 策略

  • $key 是一个表示策略键的字符串,可以是 CspBuilder::DEFAULTCspBuilder::REPORT 之一。
  • $directives 是一个包含要添加的指令的数组,默认为 []
CspBuilder::createPolicy($key, $directives);

获取策略

获取一个 策略

  • $key 是一个表示策略键的字符串,可以是 CspBuilder::DEFAULTCspBuilder::REPORT 之一。
$policy = CspBuilder::getPolicy($key);

获取所有策略

获取所有策略。

$policies = CspBuilder::getPolicies();

获取 Report-To

获取 Report-To 值。

$reportTo = CspBuilder::getReportTo();

检查策略

检查是否存在策略。

  • $key 是一个表示策略键的字符串,可以是 CspBuilder::DEFAULTCspBuilder::REPORT 之一。
$hasPolicy = CspBuilder::hasPolicy($key);

设置策略

设置一个策略。

  • $key 是一个表示策略键的字符串,可以是 CspBuilder::DEFAULTCspBuilder::REPORT 之一。
  • $policy 是一个 策略
CspBuilder::setPolicy($key, $policy);

设置 Report-To

设置 Report-To 值。

  • $reportTo 是一个包含 Report-To 值的数组。
CspBuilder::setReportTo($reportTo);

策略

添加指令

向指令添加选项。

  • $directive 是一个表示指令的字符串。
  • $value 是一个字符串,或一个包含要添加的值的字符串数组。对于不需要值的指令,您可以将其设置为 truefalse 以指示是否包含该指令。
$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);

处理

$response = $middleware->process($request, $handler);

此方法将返回一个 ClientResponse