質問 > フロント機能 > 商品詳細ページからのログインについて |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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 であり、実質的にパスですね。
|
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 であり、実質的にパスですね。 私なら、
とか試すかな。(赤字部分を追加)
|
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 をでっち上げる方が早いかも。
|
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: 商品詳細ページからのログインについて 参考にさせていただきます。
ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |