誰かが Web サイト Z にログインするのを妨げているのは何ですか? Web サイト Z の Session_Id を保持する Cookie に入り、それをいじって、サーバーによって識別される別の誰かになるのでしょうか?
4 に答える
誰かが Web サイト Z にログインするのを妨げているのは何ですか? Web サイト Z の Session_Id を保持する Cookie に入り、それをいじって、サーバーによって識別される別の誰かになるのでしょうか?
これを行うには、実際には別のセッション ID を知っている必要があります。セッション ID は非常に長く、意図的にランダムであるため、別のユーザーの ID を推測することはできません。
PHPセッションについて言えば、答えは「誰も保護していない」です!
「より安全」にするために何かをしなければなりません。
- 認証に SSL を使用する
- セッション ID を時間の経過とともに期限切れにする
- IP と USER AGENT を確認します (わかりました、回避できる可能性があります)。
等々 ...
セッションIDの長さとベースに他なりません。かなり長い場合、衝突が見つかるまでに数兆回 (またはそれ以上) の試行が必要になります。より長い ID は、可能な ID の数をハッシュのベースで乗算するため、ハッシュに数字と小文字が含まれている場合、余分な文字ごとに可能性が 36 倍になります。
20 文字のハッシュでは、36^20 の異なる可能性が得られます。ID の長さを 2 倍にすると、36^40 の異なる可能性が得られます。誰かが別のアカウントに力ずくで侵入することをはるかに困難にします。
場合によっては (CodeIgniter フレームワーク)、Cookie を暗号化して、この攻撃をより困難にすることができます。
安全なアプリを開発するための適切なセキュリティ ガイドラインに従うだけの問題です。