[Tep-j-general] セッションハイジャック対策(Recreate Session)

Back to archive index

TAMURA Toshihiko tamur****@bitsc*****
2004年 4月 26日 (月) 10:21:41 JST


こんにちは、田村です。

osCommerceで運用しているサイトに、
外部のサイトからセッションIDの付いたURLでリンクされると、
そこからやってきたユーザのセッションが区別できなくなって、
他人の名前やショッピングカートが見えてしまう場合があります。

対策としては、session.referer_check の設定を利用するのが
簡単で効果があります。
ただ、ページビューの多いサイトでは、それでも防ぎきることが
できませんので、MS2以降で組み込まれた(?) `Recreate Session'を
MS1日本語版に組み込みました。

# `Recreate Session'はMS2では実際には動く状態になっていません。

この変更は実サイトでもテストしているので大きな問題はないと
思いますが、何かお気づきの点がありましたら教えてください。


(参考) session.referer_check
http://jp.php.net/manual/ja/ref.session.php

------------------------------------------------------------
●現象
osCommerce において、BBSや検索サイトの検索結果から`osCsid=...'と
いったセッションID付きURLでサイトを訪れる場合がある。
現在、この現象を確認している検索エンジンには MSN がある。

これにより、同じセッションIDを持ったユーザが複数存在することになり、
いわゆるセッションハイジャックの状態となる。

●対策1
php.ini の設定 session.referer_check は有効。
しかし、Mac のブラウザ Safari は外部サイトの HTTP_REFERER を
返さないので、session.referer_check では解決できない。

●対策2
ログイン時にセッションIDを付け替える(Recreate Session)。

●その他
Contributions: spiderkiller
http://www.oscommerce.com/community/contributions,1089
ロボットのアクセス時にセッションIDを付加しない。
少し処理は重い。

------------------------------------------------------------
Recreate Session に関する変更点

●変更したファイル(Recreate Session):
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/tep-j/oscommerce-2.2ms1j/
からダウンロードできます。
  catalog/create_account_process.php
  catalog/login.php
  catalog/includes/functions/html_output.php
  catalog/includes/functions/sessions.php
  catalog/install/oscommerce.sql

●追加する必要のあるSQL
INSERT INTO configuration_group VALUES ('15', 'セッション',
'セッション制御に関するオプション', '15', '1');

INSERT INTO configuration (configuration_title, configuration_key,
configuration_value, configuration_description, configuration_group_id,
sort_order, set_function, date_added) VALUES ('セッションの再生成',
'SESSION_RECREATE', 'False',
'顧客のログオンまたはアカウント作成のときに,新しいセッションIDをつけるた
めにセッションを再生成します. (PHP >=4.1 needed).', '15', '7',
'tep_cfg_select_option(array(\'True\', \'False\'), ', now());

●管理画面での設定
[基本設定]-[セッション]-[セッションの再生成]を`True'にセットする。
------------------------------------------------------------

-- 
田村敏彦 / 株式会社ビットスコープ
E-mail:tamur****@bitsc*****
http://www.bitscope.co.jp/






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