1

私は、ユーザー認証、セッション/Cookie の使用、およびセッション ハイジャックに伴うセキュリティ リスクで発生する問題を検討してきました。安全な https:// を使用することが最も効果的な方法であり、regenerate_session_id() を使用し、検証にランダムな文字列を使用することを理解しています (多数の追加手順の中でも)。

私の質問は次のとおりです。セッションと Cookie を放棄し、データベースが保持する変数のみを使用する方法を組み込む可能性はありますか?

設定方法は次のとおりです。

-IPアドレスを保持できるユーザーテーブルに列があり、ブール値になる列があります。

- ユーザーが「ログイン」すると、ユーザーの現在の IP アドレスがデータベースに設定され、ブール値が false (ユーザーが「記憶」されたくない場合) または true (記憶される場合) に設定されます。

-ページの読み込み時に、現在の IP アドレスをユーザー データベースに保存されているものと照合します。一致する場合、ユーザーは有効であると見なされます。

- ウィンドウを閉じると、スクリプトはこれらの値をクリアし、ユーザーは「ログアウト」されます。

-ユーザーが「ログインしたまま」にしたい場合 (これは大きなセキュリティ リスクであることはわかっています)、トグル (ブール値) は単にログアウト スクリプトを無効にし、IP アドレスはユーザーのために保存されたままになります。

そのような方法へのフォールバックは何でしょうか? それは可能ですか?

4

3 に答える 3

5

IP アドレスは、ユーザーを一意に識別するための正確で信頼できる方法ではありません。IP はセッション中に変更される可能性があり、複数のユーザー エージェントが同じ発信 IP を使用している可能性があります。

ごめん :-)

于 2012-06-18T04:00:59.350 に答える
3

最近、あるシステムでこの種の IP チェックが行われているのを見ましたが、ユーザーが常に (動的 IP が変更されるたびに) ランダムに切断されるという多くの問題が発生していました。IPは変更される可能性があるため、IPに依存することはできません.

ほとんどの場合、既存の認証方法を調べて、それを実装してみてください。複雑にしないでおく。

于 2012-06-18T04:01:35.773 に答える
1

「動的IPが問題です」という既存の回答は完全に正しいです。3g 経由で接続されたモバイル デバイスを考えてみましょう。ユーザーが新しいタワーの範囲内に入るたびに、IP が変更されます...

于 2012-06-18T04:18:24.030 に答える