ronanchilvers/silex-middleware

为 silex 的一些有用中间件

1.3 2019-01-11 22:01 UTC

This package is auto-updated.

Last update: 2024-09-12 11:23:07 UTC


README

用于 Silex 的中间件集合。

安装

composer require ronanchilvers/silex-middleware

配置

配置详情根据使用的中间件而有所不同。具体请参见下方的说明。

可用中间件

内容安全策略

此中间件允许你向响应添加内容安全策略头。它使用 paragonie/csp-builder 库来构建头信息。你可以将策略作为数组传递为第一个构造函数参数。

$app->after(
    new Ronanchilvers\Silex\Middleware\ContentSecurityPolicy([
        'default-src' => [
            'self' => true,
            'unsafe-inline' => true,
        ],
        'style-src' => [
            'allow' => [
                'https://fonts.googleapis.com'
            ],
            'self' => true,
            'unsafe-inline' => true,
        ],
        'font-src' => [
            'allow' => [
                'https://fonts.gstatic.com/'
            ],
            'self' => true
        ],
        'report-only' => true,
    ])
);

引用者策略

此中间件向响应添加了 引用者策略 头。此头的值是一个策略指令,必须是以下之一

  • <空字符串>
  • no-referrer
  • no-referrer-when-downgrade
  • same-origin
  • origin
  • strict-origin
  • origin-when-cross-origin
  • strict-origin-when-cross-origin
  • unsafe-url

每个这些值的精确含义在 Scott Helme 的博客文章 这里 以及 w3.org 官方规范 中都有解释。

// This adds the middleware with a default 'no-referrer' policy
$app->after(new Ronanchilvers\Silex\ReferrerPolicy());

// This specifies the 'strict-origin' policy
$app->after(new Ronanchilvers\Silex\ReferrerPolicy('strict-origin'));

严格传输安全

此中间件向每个响应添加了 HSTS 或严格传输安全 头。

// Add with defaults
$app->after(new Ronanchilvers\Silex\Middleware\StrictTransportSecurity());

// Or - set the max-age to 1 day / 86400 seconds
$app->after(new Ronanchilvers\Silex\Middleware\StrictTransportSecurity(86400));

中间件接受两个构造函数参数

  • 以秒为单位的最大存活时间 - 默认为 15552000 秒或 6 个月
  • 包含子域名 - 默认为 false