ウィザードの手順を検証して次々とセキュリティを確保するためにナンスを生成しています。
nodejsでノンスを作成し、同じものをデータベースに保存して、一度使用できるようにする方法を知っています。
しかし、上記のようにノンスを生成して検証し、一度だけ使用し、可能であれば、データベースに同じものを保存せずに制限時間 (有効期限) 内に使用できるかどうか疑問に思っていました。ウィザードの 1 つのステップでクライアントを検証し、次のステップで同じことを検証します。
私は通常、以下の方法を使用してノンスを生成し、正規化し、有効期限が切れるまでmongodbに保存して、mongodbが使用されていない場合は特定の時間後に削除するようにします。
var crypto = require('crypto');
crypto.randomBytes(32, function (err, bytes) {
if (err) {
next(err);
} else {
next(null, normalize(bytes));
}
});
これよりもナンスを生成する適切な/最適化された方法と、データベース呼び出しなしで1回限りの使用と有効期限を処理する可能性があるかどうかを提案してください。