123456789101112131415161718192021222324252627282930 |
- const crypto = require('crypto');
- const hash = crypto.createHash('sha384');
- function generateCSPHash(script) {
- const data = hash.update(script, 'utf-8');
- return (
- 'sha384-' +
- data
- .digest('base64')
- .replace(/=/g, '')
- .replace(/\+/g, '-')
- .replace(/\//g, '_')
- );
- }
- script = " \
- const button = document.querySelector('#hello2'); \
- button.addEventListener('click', () => { \
- const h1 = document.createElement('h1'); \
- h1.textContent = 'Hello World 2!'; \
- document.body.appendChild(h1); \
- }); \
- ";
- var http = require('http');
- http.createServer(function (req, res) {
- res.writeHead(200, {'Content-Type': 'text/html'});
- res.end(generateCSPHash(script));
- }).listen(8080);
|