thefredfox/cakephp-csp

通过移除内联 JavaScript 和内联样式,使 CakePHP 3 支持 CSP。

安装次数: 2,796

依赖关系: 0

建议者: 0

安全性: 0

星标: 4

关注者: 4

分支: 1

公开问题: 0

类型:cakephp-plugin

dev-master 2016-04-15 12:46 UTC

This package is auto-updated.

Last update: 2024-09-25 23:39:29 UTC


README

描述

此插件对 FormHelper 和 HtmlHelper 进行了一些轻微修改,因此将不再有任何内联脚本或样式,开发者可以轻松添加 CSP 头部。

安装

您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。

安装 composer 包的推荐方法是

composer require thefredfox/cakephp-csp

配置

在 CakePHP 中加载此插件

// in bootstrap.php file
Plugin::load('Csp');

在您的布局或页面上,您需要加载 csp 插件的 css 和 js 文件

// in your layout/page file
$this->Html->css('Csp.csp');
$this->Html->script('Csp.csp'); //this script has to be loaded at the bottom

如果您还没有使用其他 FormHelper 或 HtmlHelper,您可以轻松使用此插件的 Helper

// in your AppView
public function initialize()
{
  $this->loadHelper('Csp.Html');
  $this->loadHelper('Csp.Form');
}

扩展第三方 Helper

如果您正在使用其他 FormHelper 或 HtmlHelper(例如 BootstrapUI Helper),您可以在自己的扩展 Helper 类中使用此插件提供的 Traits

// in src/View/Helper/FormHelper

class FormHelper extends \BootstrapUI\View\Helper\FormHelper {

  use \Csp\View\Helper\FormHelperTrait;

}

扩展您自己的 Helper

如果您已经扩展了某个 Helper,您可以尝试像上面那样使用 Trait,但您可能希望再次扩展您的 Helper 以避免覆盖某些内容。

// in src/View/Helper/CspFormHelper (or the like)

class CspFormHelper extends FormHelper {

  use \Csp\View\Helper\FormHelperTrait;

}

我已经用自己的 Helper 类尝试过,这些 Helper 类扩展了 BootstrapUI 类。在 HtmlHelper 类中,我已经重写了 link 函数,该函数也被 Csp-plugin 的 HtmlHelper 重写,因此我创建了一个 CspHtmlHelper 类,该类扩展了我的其他 HtmlHelper 并使用 csp 插件的 HtmlHelperTrait。它有效。 ;)