Kenji Okobira
okobi****@thecl*****
2007年 12月 11日 (火) 04:54:43 JST
お初にお目にかかります。 いろいろと情報を収集しているうちにこちらにたどり着いたため、初回で失礼かとは思いますが質問させていただきました。 今回oscommerce-2.2ms1jのデザインおよび独自カスタマイズを大幅に行ってクライアントのECサイトを構築いたしました。 現在、catalog以下をすべてSSL通信するように設定し運用している状態になっております。 その際「osCsid=〜」が付きまとい、現状としてセッションハイジャックができてしまう状態になっています。 過去スレを参考にhtml_output.phpやapplication_top.php等を確認したのですが、やはりセッションハイジャックできてしまう状態になっています。 セッションハイジャックのテストは同一グローバルIPおよび別グローバルIPどちらとも確認しました。 このバージョンのosCではこのパラメータをはずしてSSL通信することはできないのでしょうか? もし方法があるとするならば、どのソースのどの部分を確認すればよろしいでしょうか? 下記にテストサーバのphpinfoのsession部分とhtml_output.phpのカスタマイズ部分を記入します。 (本番サーバの情報はクライアントとの守秘義務によりあげられません・・・モウシワケナイデス) なお、テストサーバのSSLは独自認証を設定し、本番サーバはベリサインでSSLを設定しております。 <phpinfo> session.auto_start Off session.bug_compat_42 On session.bug_compat_warn On session.cache_expire 180 session.cache_limiter nocache session.cookie_domain thecloud.co.jp session.cookie_lifetime 0 session.cookie_path / session.cookie_secure Off session.entropy_file no value session.entropy_length 0 session.gc_divisor 100 session.gc_maxlifetime 1440 session.gc_probability 1 session.name PHPSESSID session.referer_check thecloud.co.jp session.save_handler files session.save_path /tmp session.serialize_handler php session.use_cookies On session.use_only_cookies On session.use_trans_sid Off <html_output.phpの変更部分の抜粋> // The HTML href link wrapper function function tep_href_link($page = '', $parameters = '', $connection = 'SSL', $add_session_id = true, $search_engine_safe = true) { // Start IN-Solution SpiderKiller global $spider_agent, $spider_ip, $spider_checked_for_spider, $spider_kill_sid, $HTTP_SERVER_VARS; // END IN-Solution SpiderKiller if (!tep_not_null($page)) { die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>'); } if ($connection == 'NONSSL') { $link = HTTP_SERVER . DIR_WS_CATALOG; } elseif ($connection == 'SSL') { if (ENABLE_SSL == true) { $link = HTTPS_SERVER . DIR_WS_CATALOG; } else { $link = HTTP_SERVER . DIR_WS_CATALOG; } } elseif ($connection == '') { // ★空白指定の場合は、現在のSSL 仕様状況を維持 } else { die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL</b><br><br>'); } if (tep_not_null($parameters)) { $link .= $page . '?' . tep_output_string($parameters); $separator = '&'; } else { $link .= $page; $separator = '?'; } while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1); 〜中略〜 //// // Output a form pull down menu function tep_draw_pull_down_menu_sp($name, $values, $default = '', $parameters = '', $required = false) { $field = '<select name="' . tep_parse_input_field_data($name, array('"' => '"')) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; if (tep_parse_input_field_data($name, array('"' => '"')) == "id[1]"){ $field .= ' onchange="javascript:reload(\''.tep_href_link(FILENAME_PRODUCT_INFO).'\',\'1\')">'; $field .= '<option value="0">選択して下さい</option>'; }else{ $field .= ' onchange="javascript:reload(\''.tep_href_link(FILENAME_PRODUCT_INFO).'\',\'2\')">'; $field .= '<option value="0"> </option>'; } if (empty($default) && isset($GLOBALS[$name])) $default = $GLOBALS[$name]; for ($i=0, $n=sizeof($values); $i<$n; $i++) { $field .= '<option value="' . tep_parse_input_field_data($values[$i]['id'], array('"' => '"')) . '"'; if ($default == $values[$i]['id']) { $field .= ' SELECTED'; } $field .= '>' . tep_parse_input_field_data($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>'; } $field .= '</select>'; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } ※後半のソース部分は商品のオプションをプルダウン選択に変更し、在庫がない場合はそのプルダウンに表示しないようにカスタマイズしています。 よろしくお願いします。 ━━━━━━━━━━━━━━━━━━━━━━━ 株式会社クラウド 大河平謙二 okobi****@thecl***** ━━━━━━━━━━━━━━━━━━━━━━━