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 よろしくお願いします。