如何在node.js中生成一个nonce?

时间:2018-04-27 20:10:02

标签: node.js content-security-policy nonce

我需要生成一个nonce(仅生成一次的数字)来删除CSP规则'unsafe-inline'和脚本的所有可信URL,从而提高CSP分数。因此我需要在HTML中

<script nonce="{{{nonce}}}" src="http://example.com/file.js">

我知道nonce必须是唯一的,计算方法几乎不可能预测,它应至少有128位(因此是16字节),并在base64中编码。因此node.js是正确的吗?

const crypto = require('crypto');
let nonce = crypto.randomBytes(16).toString('base64');

2 个答案:

答案 0 :(得分:6)

只是为了确认这确实在NodeJS中用于CSP nonce

const crypto = require('crypto');
let nonce = crypto.randomBytes(16).toString('base64');

答案 1 :(得分:0)

我建议为此使用uuidhttps://www.npmjs.com/package/uuid

每个uuid恰好是所需的16个字节(128位),与流星撞击相比,您的计算机被流星击中的可能性更高。