[解決済み] セッションハイジャックを防止する最善の方法は何ですか?
質問
具体的には、サーバ上のセッションを識別するためにクライアントセッションクッキーを使用する場合についてです。
Webサイト全体にSSL/HTTPS暗号化を使用することが最善の答えで、中間者攻撃によって既存のクライアントセッションクッキーが盗聴されないという最高の保証があるのでしょうか?
そしておそらく2番目に良いのは、セッションCookieに保存されるセッション値自体に何らかの暗号化を使用することでしょうか?
もし悪意のあるユーザーがマシンに物理的にアクセスできたとしても、ファイルシステムを見て有効なセッションクッキーを取得し、それを使ってセッションを乗っ取ることができるのでしょうか?
どのように解決するのですか?
セッションの値を暗号化しても、効果はゼロです。セッション クッキーはすでに任意の値であり、暗号化しても、盗聴可能な別の任意の値が生成されるだけです。
唯一の本当の解決策はHTTPSです。サイト全体をSSL化したくない場合(パフォーマンス上の懸念があるのかもしれません)、機密性の高い領域だけをSSLで保護することで済ませられるかもしれません。そのためには、まず、ログイン・ページがHTTPSであることを確認します。ユーザーがログインするときに、通常のセッション・クッキーに加え、セキュア・クッキー(ブラウザがSSLリンクを介してのみ送信することを意味する)を設定します。次に、ユーザが機密性の高い領域にアクセスしたら、HTTPSにリダイレクトし、そのセキュア・クッキーの存在を確認します。本当のユーザーにはそれがありますが、セッション ハイジャック犯にはありません。
EDIT : この回答は元々2008年に書かれたものです。今は2016年であり、サイト全体をSSL化しない理由はありません。もうプレーンテキストのHTTPは必要ありません。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例