ホームページ  >  記事  >  バックエンド開発  >  ログイン状態を保存するためにより安全な Cookie を設定するにはどうすればよいですか?

ログイン状態を保存するためにより安全な Cookie を設定するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-10-10 11:55:561027ブラウズ

主に 2 つの状況に対応します:

  1. ユーザーが Cookie を解読しました

  2. 悪意のあるユーザーが Cookie を乗っ取り、ログインしたふりをします

ユーザーのログイン状態を記憶し、比較的安全にできるように Cookie を設定するにはどうすればよいですか?

返信内容:

主に 2 つの状況に対応します:

  1. ユーザーがCookieをクラックしました

  2. 悪意のあるユーザーが Cookie を乗っ取り、ログインしたふりをします

ユーザーのログイン状態を記憶し、比較的安全にできるように Cookie を設定するにはどうすればよいですか?

セッションに回答した友人、おそらく質問者は、ユーザーが次回訪問したときに自動的にログインできるように、ログイン状態を保存できることを間違いなく望んでいると思います。セッションについて言及しましたが、次の問題を解決するにはどうすればよいですか?

  • セッションタイムアウトを計算するには?

  • SessionID も Cookie に保存する必要があります。

トピックに関する質問:

  1. 暗号化の問題、AES 暗号化では十分です。具体的な暗号化/復号化については、@eechen の https://segmentfault.com/q/10... を参照してください。

  2. XSS によって Cookie が挿入されるのを防ぎます。
  3. httponly
    で十分です。session_id とログインステータスの両方に httponly が必要です。JavaScript は httponly 属性を持つ Cookie を取得できません

PHP のネイティブ session_id は httponly ではないため、laravel はセッションのすべてのロジックを実装し、データベース、ファイル、Redis、その他のドライバーをサポートします

セッション

セッションはサーバー側に比較的安全に保存されます。

Cookie形式

暗号化が必要な部分を暗号化します。

検証された場合は、復号化して検証しますuser_identity|expires_timestamp

js が Cookie にアクセスできないように httponly を設定します

HTTPS を使用して中間者攻撃を防ぎます


ユーザーがログインすると、暗号化された文字列認証トークンが生成され、Cookie に保存されます。次回、その Cookie が開かれて読み取られ、トークンが有効かどうかが確認されます。

リーリー リーリー

その間にはさまざまな方法がありますが、考慮する必要があるものを分析するだけです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。