バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品詳細ページからのログインについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Tatsu3
投稿日時: 2010/8/30 21:37
対応状況: −−−
新米
登録日: 2010/1/26
居住地:
投稿: 7
商品詳細ページからのログインについて
ブロックのログイン制御を下記のように変更したのですがトップページに戻ってしまいます。

?login.tpl内の
<input type="hidden" name="url" value="<!--{$smarty.server.PHP_SELF|escape}-->" />

<input type="hidden" name="url" value="<!--{$smarty.server.REQUEST_URI|escape}-->" />
に変更。

?LC_Page_FrontParts_LoginCheck.php内の
$this->sendRedirect($this->getLocation(URL_DIR, array(), false));

$this->sendRedirect($this->getLocation($_POST['url'], array(), false));
に変更。

商品詳細ページのurlを渡していると思うのですが。

どのようにすればいいのか、ご教示ください。

EC-CUBE 2.4.4
DBサーバ MySQL 5.0.45
PHP 5.2.8
seasoft
投稿日時: 2010/8/30 22:39
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページからのログインについて
動作未確認ですが、ソース的に気になった点を・・・
URL_DIR ・・・ パス(ディレクトリ)
$_POST['url'] ・・・ URL
という、差があるように思います。


失礼しました。
$_POST['url'] も実体は $smarty.server.REQUEST_URI であり、実質的にパスですね。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

55eccube
投稿日時: 2010/8/31 0:12
対応状況: −−−
長老
登録日: 2010/8/18
居住地: 東京
投稿: 222
Re: 商品詳細ページからのログインについて

結構複雑な処理の部分なので、
LC_Page.php
getLocation関数を詳細に調べられるとよいかと思います。


seasoft
投稿日時: 2010/8/31 0:26
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページからのログインについて
動作未確認です。外していたらゴメンなさい。
そもそも、URL を引数とするなら、LC_Page::getLocation を使う必要が無いんじゃないかな。
getLocation って、パスから URL を取得するのが役割なので。


失礼しました。
$_POST['url'] も実体は $smarty.server.REQUEST_URI であり、実質的にパスですね。


私なら、

var_dump($_POST['url']);
var_dump($this->getLocation($_POST['url'], array(), false));
exit;
$this->sendRedirect($this->getLocation($_POST['url'], array(), false));

とか試すかな。(赤字部分を追加)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

Tatsu3
投稿日時: 2010/8/31 11:05
対応状況: −−−
新米
登録日: 2010/1/26
居住地:
投稿: 7
Re: 商品詳細ページからのログインについて
ダンプを調べてみたのですが
LC_Page.php内のgetLocation⇒getRootPathと辿り、
下記realpath()でfalseになっています。

$realPath = realpath(HTML_PATH . substr_replace($path, "", 0, strlen(URL_DIR)));

商品詳細ページ(動的:"/detail.php?product_id=1")が原因でしょうか?

realpath()を取ればいいのでしょうか?

seasoft
投稿日時: 2010/8/31 12:00
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品詳細ページからのログインについて
未検証ではありますが、たしかに動的 URL は怪しいですね。

getLocation は色々な所で使っていて影響が怖いので、今回の箇所では getLocation を使わずに、$_SERVER 変数や定数などから URL をでっち上げる方が早いかも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

nanasess
投稿日時: 2010/8/31 12:20
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: 商品詳細ページからのログインについて
Query String は getLocation() の第二引数で渡してあげてください.
予期せぬリダイレクトが発生しないよう, PATH や Query String の妥当性は, すべてチェックしてください.

POST の値をいきなり getLocation() につっこむのは, 脆弱性の原因となります.

参考
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#HTTPResponseSplitting_about

Tatsu3
投稿日時: 2010/9/2 16:22
対応状況: −−−
新米
登録日: 2010/1/26
居住地:
投稿: 7
Re: 商品詳細ページからのログインについて
参考にさせていただきます。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,062名です
総投稿数は110,021件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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