人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

よく、PHPでのセッションハイジャック対策として、認証後に「session_regenerate_id(true)」を行ったり、認証確認時にユーザ環境に依存する情報で簡易的なチェックを行う等の対策をよく拝見します。

そもそも認証済みセッションのセッションIDが盗聴された場合、「session_regenerate_id(true)」では、旧IDに紐付いた情報は破棄されることと、新しいセッションIDが発行される点はわかりますが、結局、そのタイミングが悪意をもったユーザの操作時点で再生成されない保証はできないような気がします。

その為その被害を軽減しそもそも発生確率を低減する対策として、ユーザ環境に依存する情報で定期的(操作毎?)にセッションIDの保有者と認証時点のユーザの同一性を確認しているという理解です。

そういった意味で、完全に防衛する仕組みは実現できないため、基本的には性悪説に則って考えて情報更新時には基本的にログイン状態を維持できる仕組みでも更新前や重要情報の表示前には再度パスワードによる認証を行うものだと認識しています。

いろいろなブログを拝見して考えていくと、結局自身が高じている悪意のあるユーザへの対策が完全では内容に思え、ちょっと悩んでおります。

●質問者: jyack
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP セッション セッションハイジャック タイミング パスワード
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● idetky
●27ポイント

まあ、悩みますよね。。


で、質問はなんですか?

◎質問者からの返答

おっと、すみません。

500文字いないに納めるために、事例部分の削除とかしているうちに質問の部分も削除してしまっていました(笑)

質問としては、前述のような理解がそもそも正しいのかという点です。

セッションIDが盗聴された時点で、セッションIDを前提としての対策は仮に再生成をおこなっても

前述のように必ずしも正規のセッションに対して再生成するとは限らないので、努力はしても完全には防げない。

だから、最低限個人情報の類の表示や更新に関しては都度パスワードを求める必要があるという結論でよいのかなぁという事を

そのほかのPHPユーザの方の経験や実際の取り組みとしてご意見を伺いたかったのです。


2 ● idetky
●27ポイント

自分は、第三者の情報を扱うようなサイトを作る際には、必ずhttpsを利用しています。

この方法でも、スパイウェア、ウイルスなどでクライアントPC側に保存されているCookie情報は暗号化されていないので、Cookieの情報をインターネット上に流すような動作をするスパイウェアなどにクライアントPCが感染している場合にはどうしようもないですけどね。

◎質問者からの返答

ご回答ありがとうございます。

>自分は、第三者の情報を扱うようなサイトを作る際には、必ずhttpsを利用しています。

そうですね、私も認証や重要情報はHTTPS、閲覧時のセッションはHTTPSで認証を通過した後、セッション情報を共有しない形でHTTPSとは別なセッションIDを準備し管理をしています。

>この方法でも、スパイウェア、ウイルスなどでクライアントPC側に保存されているCookie情報は暗号化されていないので、Cookieの情報をインターネット上に流すような動作をするスパイウェアなどにクライアントPCが感染している場合にはどうしようもないですけどね。

そうなんですよね。

私が悩んでいるのも、そもそもWebアプリケーションの脆弱性については、開発者が十二分に対策を練るべきですが、

そのスコープとして利用者自身が追っているセキュリティリスクについて、どこまでWebアプリケーション側で考えるべきなのかという点で悩んでいます。


3 ● nake
●26ポイント

>更新前や重要情報の表示前には再度パスワードによる認証を行うものだと認識しています。

これにSSLをかけるしかなさそうですね。

あと、IPアドレスとかリファーとか併用すれば強化できると思いますが、完璧にはならないでしょう。

考え方を逆にして、セッションIDがハックされたらどのようなことが可能かを考えてみては?

できることが、致命的でない限り容認するか、利用者に責任を求めるとかそういう感じが良いと思います。

◎質問者からの返答

ご回答ありがとうございます。

>考え方を逆にして、セッションIDがハックされたらどのようなことが可能かを考えてみては?

>できることが、致命的でない限り容認するか、利用者に責任を求めるとかそういう感じが良いと思います。

なるほど!それはその通りですね。

基本的にセッションIDは悪用される可能性がある、つまり性悪説的に考えることとして、

逆にセッションIDが漏洩し悪用された場合であっても、

重要な部分については必ず再度認証を行うように対策を講じる事で、

セッションIDが漏洩し悪用されても最後の一線は守れるますね。

そう考えると少し気持ちが楽になりますね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ