私は HTTPS を使用していますが、他の誰かが最近実際に使用したセッション ID を使用して、悪意のあるユーザーが独自の Cookie を作成するリスクを最小限に抑えたいと考えています。
セッション変数として有効期限があるため、セッションが最近使用されていない場合はセッションが無効になります。そのため、被害者がアクティブであるか、最近適切にログアウトせずにサイトを離れたときが機会の窓であると考えています.
私は膨大な量のトラフィックを期待しておらず、標準の php メソッドを使用してセッション ID を生成しています。ここで誰かが実際に誰かのセッションをハイジャックすることに成功する(または試みさえする)「リスク」はゼロに近いと思います。
私がやりたいことは、を使用せず$_SERVER['REMOTE_ADDR']
に、何らかの形でリモートユーザーを「識別する」ことです。私の考えでは、攻撃者は有効なセッション ID を見つけるだけでなく、実際のユーザーのさまざまなプロパティになりすます必要があります。
ユーザーが証明書を使用してログインすることを強制したくありません。祖母や彼女のような非技術者であっても、すべての標準的な Web ブラウザーで動作するようにしたいと考えています。
それで、私が最初に聞きたかったのは、使用できる HTTPS セッションの「プロパティ」はありますか? それらは役に立ちますか?もしそうなら、どうすればそれらを見つけることができますか? phpinfo()
HTTPS固有のものは何も明らかにしません。(httpd
露出しないから?)
ユーザー間で十分に一意であると想定されるHTTP_USER_AGENT
+ HTTP_ACCEPT
+ HTTP_ACCEPT_LANGUAGE
+ HTTP_ACCEPT_ENCODING
+または同様のものを連結して使用する必要がありますか?HTTP_ACCEPT_CHARSET
すべての回答に非常に満足しています! (ただし、StackOverflow に関する他の質問への参照のみで回答する前に、質問を読んでください) ありがとうございます!