2013-07-04 10 views
6

ドキュメントは秘密にする必要がありますが、私のコードはgithubに公開されています。express.cookieParser()シークレットにはどうすればよいですか?

app.use(express.cookieParser(crypto.randomBytes(64).toString()))となりますか、またはサーバーの再起動時に秘密を同じにする必要がありますか?シークレットをディスクに保存する必要がありますか?秘密はどのようにする必要がありますか?

答えて

4

あなたの秘密の秘密を維持するには、(例えば「COOKIE_SECRET」と呼ばれる)環境変数で設定することができますし、あなたが行うことができます。

var cookieSecret = process.env.COOKIE_SECRET; 

app.use(express.cookieParser(cookieSecret)); 

を(または、より洗練されたコンフィグ設定をご希望の場合nconfを見てみることをお勧めします。環境変数、コマンドライン引数、フラットファイル間の構成を統一します。

3

再起動後にセッションを維持する場合は、同じにする必要があります。 秘密は、不正な形式のCookieデータを防ぐために、サーバー上のセッションデータを検証するために使用されます。 ランダムなデータをファイルに書き込んで、アプリ起動時にファイルからシークレットを読み取ることができます。ファイルが存在する場合は、新しいランダムキーを作成しないでください。

3

セッションクッキーを解析して一致させるためにシークレットが使用されます。再起動後に変更すると、新しい秘密情報でクッキーが有効にならないため、以前のセッションは無効になります。

でも、クッキーが盗まれた場合は、秘密を変更することを検討することができます。これはあなたを保護します。必要な場所のどこにでも秘密を保管することは良い習慣ではありません。どのような秘密や塩類でも、あなたの安全のためにアクセスできないので同じです。

関連する問題