thefredfox / cakephp-csp
通过移除内联 JavaScript 和内联样式,使 CakePHP 3 支持 CSP。
dev-master
2016-04-15 12:46 UTC
Requires
- php: >=5.4.16
- cakephp/cakephp: ~3.0
Requires (Dev)
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。它有效。 ;)