Wallogit.com
2017 © Pedro Peláez
A really easy way to build CSP headers and add them to the response.
![Software License][ico-license]
, (*1)
A really easy way to build CSP headers and add them to the response., (*2)
Officially supported platforms: - Laravel: ^5.8 - Craft: ^3.0, (*3)
Via Composer, (*4)
bash
$ composer require zae/content-security-policy, (*5)
Add the middleware to the middleware Kernel., (*6)
protected $middlewareGroups = [
'web' => [
...
\Zae\ContentSecurityPolicy\Laravel\Http\Middleware\ContentSecurityPolicy::class
],
]
return [
BlockAllMixedContent::class,
Sandbox::class => [
Sandbox::ALLOW_FORMS,
Sandbox::ALLOW_SCRIPTS,
Sandbox::ALLOW_TOP_NAVIGATION,
Sandbox::ALLOW_SAME_ORIGIN,
Sandbox::ALLOW_POPUPS,
]
];
The library includes a module for Craft 3 that can send the CSP header and a twig function to get the current CSP nonce., (*7)
Register the module like this:, (*8)
'modules' => [
'csp' => \Zae\ContentSecurityPolicy\Craft\Module::class,
],
'bootstrap' => [
'csp'
]
Use the twig functions like this:, (*9)
<script nonce="{{ cspnonce() }}">
// inline javascript
</script>
return [
'components' => [
'builder' => Builder::class,
],
'params' => [
BlockAllMixedContent::class,
Sandbox::class => [
Sandbox::ALLOW_FORMS,
Sandbox::ALLOW_SCRIPTS,
Sandbox::ALLOW_TOP_NAVIGATION,
Sandbox::ALLOW_SAME_ORIGIN,
Sandbox::ALLOW_POPUPS,
]
]
];
Although not officially supported yet, it's possible to use this library with other frameworks, an easy method is by using FluidDirectivesFactory., (*10)
<?php
$csp = new CSP();
$factory = new FluidDirectivesFactory($csp);
$factory
->blockAllMixedContent()
->defaultSrc([
Directive::SELF,
'https:'
])
->baseUri([
Directive::SELF
]);
Please see CHANGELOG for more information on what has changed recently., (*11)
Please see CONTRIBUTING for details., (*12)
If you discover any security related issues, please email ezra@tsdme.nl instead of using the issue tracker., (*13)
The MIT License (MIT). Please see License File for more information., (*14)