バグ報告 > フロント機能 > モバイルでGETを渡すと・・・これはバグ? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kick_go |
投稿日時: 2010/10/19 15:46
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2009/2/17 居住地: 岡山県 投稿: 20 |
モバイルでGETを渡すと・・・これはバグ? 皆様、お世話になります。
まず先に言っておきますが、過去ログにあったらごめんなさいw http://ドメイン/mobile/?a=testと直接GETで値を渡すと、 ループ処理してしまうバグ?か仕様かわからないのですが・・・ 一応発見しましたのでご報告を。 (ちょっと自信がないもので、チケット登録は控えさせていただきました。) 下記ソースはコミュ版r18755 File: data/class/helper/SC_Helper_Mobile.php function gfAddSessionId($url = null) { $objURL = new Net_URL($url); $objURL->addQueryString(session_name(), session_id()); return $objURL->getURL(); } File: data/class/session/sessionfactory/SC_SessionFactory_UseRequest.php /** * セッション初期処理を行う。 * * @return void */ function initSession() { // セッションIDの受け渡しにクッキーを使用しない。 ini_set('session.use_cookies', '0'); ini_set('session.use_trans_sid', '1'); // パラメーターから有効なセッションIDを取得する。 $sessionId = $this->getSessionId(); if (!$sessionId) { session_start(); } // セッションIDまたはセッションデータが無効な場合は、セッションIDを再生成 // し、セッションデータを初期化する。 if ($sessionId === false || !$this->validateSession()) { session_regenerate_id(true); // セッションデータの初期化 $this->state->inisializeSessionData(); // 新しいセッションIDを付加してリダイレクトする。 if ($_SERVER['REQUEST_METHOD'] == 'GET') { // GET の場合は同じページにリダイレクトする。 $objMobile = new SC_Helper_Mobile_Ex; header('Location: ' . $objMobile->gfAddSessionId()); } else { // GET 以外の場合はトップページへリダイレクトする。 header('Location: ' . URL_SITE_TOP . '?' . SID); } exit; } // 有効期限を更新する. $this->state->updateExpire(); } } header('Location: ' . $objMobile->gfAddSessionId()); ↑どうもこの前後辺りが怪しいです。 EC-CUBEコミュ版r18755と2.5で確認しました。 [Apache log](※一部抜粋) "GET /version-2_5-dev/html/mobile/index.php?a=test&PHPSESSID=5um7i0oeqe2tsgiaoutcb773t1 "GET /version-2_5-dev/html/mobile/index.php?a=test&&PHPSESSID=5um7i0oeqe2tsgiaoutcb773t1&PHPSESSID=u4c86obh88p1fd91b2asau0e42 ↑上限が来るまでひたすらループしています。 [EC-CUBE] コミュ版r18755 / 2.5 ※2.5は2010/10/19現在のファイルを更新済 [OS] Windows XP (XAMPP1.7.3利用) [PHP] PHP 5.3.0 [データベース] PostgreSQL 9.0 [WEBサーバ] Apache/2.2.14 [ブラウザ] Firefox3.6.10 以上、よろしくお願い致します。 |
kick_go |
投稿日時: 2010/10/20 12:40
対応状況: 解決済
|
半人前 ![]() ![]() 登録日: 2009/2/17 居住地: 岡山県 投稿: 20 |
Re: モバイルでGETを渡すと・・・これはバグ? 自己解決しました。
PHPのバージョン違いによるバグでした。 PHP5.2.13では上記のようなバグ現象は見られませんでした。 5.3を使う場合に限りバグが見受けられます。 また、チケットを確認したところAMUAMU様のご報告に該当すると思います。 取り急ぎご報告まで。 対象チケットURL: http://svn.ec-cube.net/open_trac/ticket/515 |
AMUAMU |
投稿日時: 2010/10/20 19:08
対応状況: −−−
|
神 ![]() ![]() 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: モバイルでGETを渡すと・・・これはバグ? ぱっと眺めたところ、session_idの評価あたりの挙動が怪しいのかな・・・?
5.3でも環境によっては再現しないようで詳しく後で見たほうが良さそうですね・・・。
|
kick_go |
投稿日時: 2010/10/21 10:37
対応状況: 確認中
|
半人前 ![]() ![]() 登録日: 2009/2/17 居住地: 岡山県 投稿: 20 |
Re: モバイルでGETを渡すと・・・これはバグ? 引用:
PHPのバージョン違い!と書いたのにあれですが・・・ AMUAMU様が仰るように環境によって左右されるようです^^; (詳しく調べてなかったので申し訳ないです) 気になったので、上記の報告に使用したPCの他、別PC・サーバーなどで実験をしました。 ▼EC-CUBEバージョン コミュ版r18755・2.5(2010/10/19 Update) ▼環境情報 ※最初の報告で使用したPC OS: Windows XP SP3 (XAMPP 1.7.3利用) PHP: 5.3.3 (PHP5.3.0は間違いでした。訂正致します) DB: PostgreSQL 9.0 Web: Apache 2.2.14 当現象: 確認済 ※次の報告で使用したPC OS: Windows XP SP3 PHP: 5.2.13 DB: PostgreSQL 9.0 Web: Apache 2.2.14 当現象: 未確認 OS: Windows XP SP3 (XAMPP 1.7.1利用) PHP: 5.2.9 DB: PostgreSQL 8.4.5 Web: Apache 2.2.11 当現象: 確認済 OS: Windows 7 (XAMPP 1.7.3利用) PHP: 5.3.3 DB: PostgreSQL 9.0.1 Web: Apache 2.2.14 当現象: 未確認 OS: CentOS 5.3 PHP: 5.2.14 DB: PostgreSQL 8.4.4 Web: Apache 2.2.16 当現象: 未確認 OS: Ubuntu Desktop 10.10 PHP: 5.3.3 DB: PostgreSQL 9.0.1 Web: Apache 2.2.16 当現象: 確認済 以上、よろしくお願い致します。 |
yamane |
投稿日時: 2010/10/22 17:14
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2008/8/18 居住地: 投稿: 11 |
Re: モバイルでGETを渡すと・・・これはバグ? Yamaneです。
細かいのですが検証されたのはFirefoxで、でしょうか。 それともFirefoxアドオンのFireMobileSimulatorでしょうか。 私も似たような現象にあった事があったのですが、 PCのブラウザでモバイルページを 見た時にしか再現しなかったのです。 うろ覚えてないのですが 機種を示す値が空になって機種の検証の処理に失敗し、 延々とループしていた気がします。 お手すきの時にご回答いただけたら幸いです。 |
kick_go |
投稿日時: 2010/10/22 18:43
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2009/2/17 居住地: 岡山県 投稿: 20 |
Re: モバイルでGETを渡すと・・・これはバグ? 引用:
細かいのですが検証されたのはFirefoxで、でしょうか。 今回検証を行ったブラウザはFirefoxで確認しています。 FireMobileSimulator・・・存在を忘れていましたw 引用: 機種を示す値が空になって機種の検証の処理に失敗し、 この情報は全く知りませんでした!ありがとうございます。 携帯電話の実機で確認してみたところ、確かに機種を示す値があるかないかで挙動が違うようです。 (実際にループ現象はなくなりました) あとは環境による問題もあるのかな?と思います。 (実際にループ現象が確認されていないものもありますし) 引き続き検証してみたいと思います。 貴重な情報ありがとうございました! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |