バージョン選択

フォーラム

メニュー

オンライン状況

33 人のユーザが現在オンラインです。 (17 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 33
もっと...

サイト内検索

バグ報告 > フロント機能 > モバイルで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でも環境によっては再現しないようで詳しく後で見たほうが良さそうですね・・・。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

kick_go
投稿日時: 2010/10/21 10:37
対応状況: 確認中
半人前
登録日: 2009/2/17
居住地: 岡山県
投稿: 20
Re: モバイルでGETを渡すと・・・これはバグ?
引用:

5.3でも環境によっては再現しないようで詳しく後で見たほうが良さそうですね・・・。

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でしょうか。

今回検証を行ったブラウザはFirefoxで確認しています。
FireMobileSimulator・・・存在を忘れていましたw

引用:
機種を示す値が空になって機種の検証の処理に失敗し、
延々とループしていた気がします。

この情報は全く知りませんでした!ありがとうございます。
携帯電話の実機で確認してみたところ、確かに機種を示す値があるかないかで挙動が違うようです。
(実際にループ現象はなくなりました)

あとは環境による問題もあるのかな?と思います。
(実際にループ現象が確認されていないものもありますし)

引き続き検証してみたいと思います。
貴重な情報ありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は67,446名です
総投稿数は98,813件です

投稿数ランキング

1
seasoft
7333
2
AMUAMU
2712
3
468
2693
4
nanasess
2116
5
umebius
1789
6
yuh
1612
7
red
1427
8
h_tanaka
1051
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.