まず、秘密鍵を生成する良い方法は何ですか?キーボードにランダムキーをたくさん打ち込んでキーを生成する必要がありますが、これにはもっと良い解決策が必要です。非常に優れたキーを生成する方法を説明します。
第二に、キーを保存する良い方法は何ですか?アプリケーション構成にキーを書き込むことはできますが、それはソースコードの侵害がシステム全体を侵害することを意味します。 Node.js Expressアプリに秘密鍵を保存する良い方法は何ですか?
プログラムでシークレットを生成するには、ノードの crypto.randomBytes() を使用できます
var crypto = require('crypto');
var jwt = require('jsonwebtoken');
crypto.randomBytes(256, function(ex, buf) {
if (ex) throw ex;
var token = jwt.sign({foo: 'bar'}, buf);
var decoded = jwt.verify(token, buf);
});
これを保存することに関して、あなたは絶対に正しいです、あなたは間違いなくあなたのソース管理に秘密を保存するべきではありません。より良い方法は、process.env.MY_SECRET
などの環境変数からこのような機密情報をロードすることです。
私が見た別のあまり一般的ではないパターンは、コードとは別に保存されたファイルからシークレットをロードすることです。たとえば、ノードアプリに~/.myapp/secrets.json
のJSONファイルを検索させることができます。