module.exports = function override(config, env) {
config.plugins.push(
new CspHtmlWebpackPlugin({
"script-src": "",
"style-src": "",
})
);
return config;
};
4. Build with `react-app-rewired build`
5. Check `build/index.html` file
#### Expected result:
Nonces are not static. At the very least, they should be generated by an inline script and injected
#### Actual result:
Static nonces are generated.
Uploading this to a CDN will allow anyone to grab the nunce and re-use it, bypassing the CSP
```html
<meta http-equiv="Content-Security-Policy"
content="base-uri 'self'; object-src 'none'; script-src 'nonce-csu9vwLV51tCaN6biAAJFg=='; style-src 'nonce-vAVCeRTmI/cROWHcZcycQA=='">
Description
Trying to use this plugin within a static website is opening security holes by default. For example if we follow https://github.com/slackhq/csp-html-webpack-plugin/issues/53, it will add static nonces on a static website.
I would recommend to disable nonces by default, and let the user enable them on when they know that they wont pack a static website
What type of issue is this? (place an
x
in one of the[ ]
)Requirements (place an
x
in each of the[ ]
)Bug Report
Filling out the following details about bugs will help us solve your issue sooner.
Reproducible in:
slackhq/csp-html-webpack-plugin version: 5.1.0
Steps to reproduce:
npx create-react-app my-app --template typescript
npm install react-app-rewired csp-html-webpack-plugin --save-dev
config-overrides.js
module.exports = function override(config, env) { config.plugins.push( new CspHtmlWebpackPlugin({ "script-src": "", "style-src": "", }) ); return config; };