月曜日に、ログインするまで、セッションをユーザー IP として設定することで、セッション ハイジャックのセキュリティ問題を解決したと思っていました。同じ IP を持つ 2 人のユーザー (自分自身とテスト ユーザー) がいて、2 人の間で切り替えを続けていました。これを防ぎ、同じ IP を持つ 2 人のユーザーが自分のサイトに登録できるようにする方法はありますか?
前もってありがとう、テリー。
月曜日に、ログインするまで、セッションをユーザー IP として設定することで、セッション ハイジャックのセキュリティ問題を解決したと思っていました。同じ IP を持つ 2 人のユーザー (自分自身とテスト ユーザー) がいて、2 人の間で切り替えを続けていました。これを防ぎ、同じ IP を持つ 2 人のユーザーが自分のサイトに登録できるようにする方法はありますか?
前もってありがとう、テリー。
ユーザーの IP をセッション ID (の代わりではなく)と共にテーブルに保存することについてのアドバイスを読んだことがあるかもしれません。次に、後続のリクエストで同じ IP からのものであることを確認します。そうでない場合は、再度ログインするように強制します。この方法には問題があり、ユーザーの ip は、ISP によっては 10 分ごとに変更される可能性があります。
一意で推測が難しいため、PHP によって提供されるセッション ID を使用します。URL からではなく、Cookie から読み取る必要があります。
問題がある場合はサイト全体を SSL 化し、短い Cookie タイムアウトを適用します。SSL は Cookie と送信を暗号化するため、盗聴されることはありません。有効期間が短いと、システムに直接アクセスできる場合、「ログインした」コンピューターから取得された Cookie はすぐに役に立たなくなります。要するに、セキュリティ証明書を取得して、通常の php セッションで通常どおり続行します。
IPを使用して、MySQLデータベースでユーザーの情報を探していると思いますか? それは間違いです。真に一意にする唯一の方法は、主キー フィールドを使用することです。
主キーをセッションとして保存してデータをプルするか、関連情報をセッションに保存して必要な場合にのみプルします。