web-dev-qa-db-ja.com

node.jsでナンスを生成する方法は?

CSPルール'unsafe-inline'とスクリプトのすべての信頼済みURLを削除して、CSPスコアを向上させるために、ナンス(1度だけ生成される数)を生成する必要があります。したがって、私はHTMLに持っている必要があります

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

ナンスは予測がほぼ不可能である計算方法で一意でなければならず、少なくとも128ビット(したがって16バイト)があり、base64でエンコードされている必要があります。したがって、これはnode.jsに適していますか?

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

実際にこれがCSPナンスのNodeJSで機能することを確認するだけです

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