0

セッション ストアに (限定的な) 形式のセキュリティを実装して、セッション ハイジャック (SSL なし) を防止するように設計されたセッション コントロール ライブラリを構築しています。

これは、リクエストごとにランダムな文字列に変更されるノンス Cookie を設定することで機能します。これまでのところ、それはうまく機能しており、接続が途中でタイムアウトになり、Cookie がクライアントに到達しない場合に、セッション データを有効に保つ基本的な方法を考え出しました。これは、最後に設定された nonce を保持することで行われ、古い nonce が存在する場合は更新されません。また、数秒間しか有効ではありません。

しかし、これにより、ハッカーが短いウィンドウで悪用する可能性のある小さなセキュリティ ホールが提供されます。現在、そのホールを塞ごうとしています。

これまでのところ、私が判断できる最善の方法は、Cookie がクライアントに送信されるのに十分な時間接続が続いていることを確認することです。を確認しましたconnection_handlingが、Cookie がネットワーク経由で送信されたのか (ステータスがnormalの時点であっsetcookieても)、ブラウザーによって受け入れられたのかわかりません。

では、クライアントが別のリクエストを行うのを待たずに、クライアントのブラウザに Cookie が設定されているかどうかを確認できる方法はありますか?

4

2 に答える 2

2

クライアントが Cookie を受け取ったかどうかは、次のリクエストまで確実にはわかりません。

または、ナンスの限定リストを保持し、それぞれに識別子を付けることもできます。これら 2 つの値は、Cookie でクライアントに送信されます。Cookie の 1 つが成功しなかった場合、次のリクエストには以前の識別子と値が含まれます。

有効な識別子の数を制限することで、与えられたノンスが使用できるほど新しいかどうかを判断します。

ただし、これはあなたが持っているものとかなり似ています。SSL はセッション ID を安全に保つのに役立ちますが、リプレイ攻撃を防ぐためにナンス管理システムを適切に維持する必要があります。

于 2013-07-29T12:59:07.847 に答える