3

Cookie を処理する最適な方法を知りたいのですが。Express.js を使用していますか? Node.jsまたはクライアント側のjavascript jquery?

私はセキュリティの観点から少し混乱しています。

あなたの助け/情報をありがとう。

4

2 に答える 2

3

Cookie は、言語やプラットフォームに関係なく、HTTP の概念です。したがって、Node.js はサーバー側プラットフォームであり、Express.js は Node.js のサーバー側 Web アプリケーション フレームワークであり、jQuery はクライアント側ライブラリです。

セキュリティの観点から、Cookie 情報をプレーン テキストで保存しないでください。また、「クライアント側のスクリプトが Cookie 値を設定または読み取ることを許可しないでください」。すでに Express.js を使用している場合は、Cookie の設定と読み取りを Express.js を使用するアプリケーションで処理し、Cookie の値を確実に暗号化することをお勧めします。

于 2012-10-22T10:21:18.170 に答える
1

実際のデータではなく、一部のセッション ID を Cookie に保持する必要があります (ほとんどの場合、特にユーザー関連の機密データに当てはまります)。

Cookie を使用するための正しいアプローチは次のようになります。

  1. ユーザーにログイン/パスワードを入力させ、「ログイン状態を維持する」チェックボックスをオンにします。
  2. サーバー側では、入力されたログインとパスワードに基づいて、ユーザー資格情報が有効かどうかを判断します。
  3. 有効な資格情報を想定して、いくつかのランダム ID を作成し、サーバー側に情報を保存します。この指定されたランダム ID は、いくつかのデータ (いくつかのユーザー ID、設定など) に関連しています。
  4. サーバー側では、「ログイン状態を維持する」チェックボックスの値に基づいて、次のようにします。チェックボックスがオンになっている場合は、非常に遠い将来 (たとえば 100 年など) に有効期限が切れる Cookie を作成します。チェックボックスがチェックされていない場合は、ブラウザ セッションが終了すると、またはたとえば 1 時間後に期限切れになるように Cookie を設定します。クッキーを送信すると、ユーザーはクッキーの有効期限を改ざんできることに注意してください。ただし、それはまったく別の話です。
  5. ユーザー (クライアント) は、生成された ID を含む Cookie を受信して​​います。その Cookie は、リクエストごとにブラウザから送信されます。
  6. サーバー側では、クライアントから Cookie を取得したら、その ID を知っているかどうか、および有効かどうかを確認します。もしそうなら、データベースなどからユーザーデータを取得し、それらを操作してください。
于 2012-10-22T10:48:00.643 に答える