Content Security Policy plugin for html-webpack-plugin
Plugin to add Content-Security-Policy to HTML files generated by html-webpack-plugin
It was heavily inspired by csp-html-webpack-plugin, but it operates a bit differently.
npm i -D hwp-csp-plugin
import { HwpCspPlugin } from 'hwp-csp-plugin';
// Webpack configuration object
export default {
plugins: [
new HtmlWebpackPlugin({ /* ... */ }),
new HwpCspPlugin(/* options */),
],
};
To configure the plugin, pass an object with the following keys to its constructor (all keys are optional):
enabled
(boolean
, defaults to true
): whether to enable the plugin;policy
(Record<string, string | string[]
>): Content Security Policy; keys are <directives>
, values are <values>
. Values can be a string ("'self' https:"
) or arrays (["'self'", 'https:']
)hashFunc
(one of sha256
, sha384
(default), sha512
): hash function to generate hashes of inline scripts / styles;hashEnabled
: can be either boolean
or an object with the following properties:script
(boolean
, defaults to true
): whether to generate hashes of inline scripts;style
(boolean
, defaults to true
): whether to generate hashes of inline styles;addIntegrity
(boolean
, defaults to false
): whether to add integrity
attribute to inline scripts and styles (controlled by hashEnabled
option).html-webpack-plugin
< 4.x<meta http-equiv="Content-Security-Policy"/>
metatags. However, it could be possible to have multiple CSPs. This needs to be investigated, and if so, then this behavior should be configurable;unsafe-hashes
and script-src-attr
/ style-src-attr
.