[Tep-j-general] セッションハイジャック対策について

Back to archive index

Hiroshi Ishiura issy7****@e-ent*****
2008年 10月 16日 (木) 20:03:48 JST


石浦と申します

ms1j-alter1バージョンで構築・管理しているサイトがあるのですが、
先日セッションハイジャックに見舞われてしまいました。

「現象」
購入した覚えのない人のIDで購入されてしまった。

「原因」
GoogleにセッションID付きのURLがクロールされてしまっていて、そのURL経由で
きたと思われるユーザがサイトに到達し決済・購入したと思われる。

現在もGoogleにキャッシュされてしまっていて
同じ経路で現象テストを試みるが現在はセッションID付でアクセスされても
セッションIDは無効になっているためログイン画面にリダイレクトされて悪用はされていない。

私的な推測ですが、このセッションIDのユーザがログイン中になんらかの形でGoogle
のクローラがセッションIDのURLを拾ってしまい、その時間中にGoogleでそのリ
ンクを見つけたユーザがサイトにアクセスしセッションがサーバ側で維持された
間にそのセッションIDを使われ購入にいたってしまったのかなと思います・・・
ちなみにYahooやMSNでは検索にひっかかっていません。Googleだけ。

尚、phpのセッション関連の設定値は以下の通りでした。
session.auto_start = 0
session.cookie_lifetime = 0
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0

osCommerce側の設定
セッションの再生成(Recreate Session) true

「対策」
とりあえずの緊急対策として
http://kansai.homelinux.com/~oscommerce/oScommerce-security-taisaku.htm
こちらの■セッションハイジャック対策を施しました。
.htaccessにphp_value session.referer_check www.music-msster.tvを設定

設定後Googleで検索すると検索結果にも現れなくなり(Google側でエラーコード
を判別?)一安心と思いきや新たに大きな問題が・・・

テストをしてみると決済は完了するが、osCommerceにリダイレクトするとログア
ウトされてしまう。
つまりリファラーの許可を自サイトしか許可していないため決済サーバから返っ
てくる時にりファラーを拒否してしまってosCommerceでの購入が完了しなくなっ
てしまった。

session.referer_checkに決済サーバのドメインをを追加し複数設定できるか調
べましたが設定できないようですね・・・
http://knowledge.livedoor.com/26969
ここらへんの問題については以前MLでルミーズ決済に関連した同様のスレッドを
見つけましたが解決に至っていないようです。
http://lists.sourceforge.jp/mailman/archives/tep-j-general/2006-September/017948.html

なのでとりあえずsession.referer_checkを解除し元に戻しました。

その他の対策として
サーチエンジンに巡回させないようにSpider_killerがありますが、これも設置
してみましたが、これは新規にはクロールされなくなるだけで、既にGoogleにキャッ
シュされてしまっているものは相変わらず検索結果にでてしまっているので、
spider_killerだけではこれは防げないんでしょうね。
同様のスレッドを見つけましたがこれも解決に至っていないようです
http://lists.sourceforge.jp/mailman/archives/tep-j-general/2005-June/015910.html
http://lists.sourceforge.jp/mailman/archives/tep-j-general/2005-June/015914.html

そもそもsession.referer_checkが複数ドメイン設定できれば一番シンプルに対
策施せると思うのですが・・・

以前のスレッドに同様の現象で悩まれている方がいることと、解決に至っていな
いところをみると同様のケースに遭遇している方は他にも少なからずいるような
気がします。

session.referer_checkは自サイトのドメインを指定し
決済画面からosCommerceの購入処理→完了画面へのセッションさえ引継ぎを許可
できれば問題は解決するのですが・・・
何か解決策をお持ちの方、ご教授くださいm(_ _)m

よろしくお願いします。




Tep-j-general メーリングリストの案内
Back to archive index