バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > SSL遷移について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
patapata
投稿日時: 2010/9/3 11:21
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
SSL遷移について
いつもお世話になっております。

SSLの遷移について、各所でおかしいのですが・・・
これは、一つ一つ直していくしかないのでしょうか?

現状わかっているだけで以下の場所があります。
・商品購入完了時のトップページへのボタン
・お問い合わせ表示中のヘッダーMYページへ以外の全てのボタン等
・お問い合わせ完了時のトップページへのボタン
・お届け先指定の戻るボタン
・SSL表示後のヘッダー、会員登録ボタン
・SSL表示後のヘッダー、カゴの中ボタン

みなさんは、どう対応しているのでしょうか?
ここまでおかしいと、なにか初期設定を失敗したか心配なのですが・・・どうなのでしょうか?

環境:
EC-CUBE 2.4.4
OS    Linux
DBサーバ MySQL 5.0.77
PHP 5.1.6
seasoft
投稿日時: 2010/9/3 11:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: SSL遷移について
過去スレでも話題になっていますが、HTTP/HTTPS の遷移ポリシーが甘いのは既存の不具合です。

(全く、HTTPS が使われないという状況ですと、設定誤りも考えられますが)

下記を参考にバージョン情報をご提供いただくと、EC-CUBE の今後の開発に役立つかもしれません。
http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8


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

patapata
投稿日時: 2010/9/3 12:03
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
失礼しました。
開発環境書き忘れていまして、後で追記したのですが間に合わなかったようです。申し訳ありません。

不具合ですか。
以下の話題をみて、色々と試してみて
いたるところにあるのがわかったんですが・・・
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=4327&forum=10

箇所が多く、一つ一つ確認・修正するのも大変なので
何か手はないか思案中です。
patapata
投稿日時: 2010/9/3 20:46
対応状況: 確認中
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
以下の対応を入れ込み検査中です。
対応に誤り等がありましたら、ご教授願います。

-----------------------------------------------------
システム設定で、項目があるものについては、該当の項目を参照させようと思い、以下の項目を変更。

[URL_CART_TOP]
URL_DIR . "cart/index.php" → SITE_URL . "cart/index.php"

[URL_SITE_TOP]
URL_DIR . "cart/index.php" → SITE_URL . "index.php"

[LIST_C_HTML]
URL_DIR . "products/list.php?mode=search&category_id="
→SITE_URL . "products/list.php?mode=search&category_id="

(上記はあくまで補足です。)

遷移がおかしくなる箇所のtplを変更。
(システム設定まで変更したくない場合は、該当箇所のURL_DIRをSITE_URLに変更するだけでよいと思われます。)

上記だけでは、まだカゴの中のTopの「前のページへ戻る」
ボタン使用時に、前のページがSSLページの場合遷移がおかしくなるので・・・

[SC_CartSession.php]
の除外ページとして以下を追加。

// 前頁のURLを記録しておく
function setPrevURL($url) {
// 前頁として記録しないページを指定する。
$arrExclude = array(
"detail_image.php",
"/shopping/",
"/mypage/", //追加
"/contact/", //追加
"/entry/" //追加
);
$exclude = false;
// ページチェックを行う。
foreach($arrExclude as $val) {
if(ereg($val, $url)) {
$exclude = true;
break;
}
}
// 除外ページでない場合は、前頁として記録する。
if(!$exclude) {
$_SESSION[$this->key]['prev_url'] = $url;
}
}
patapata
投稿日時: 2010/9/7 14:38
対応状況: 解決済
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
結論。システム設定のパラメータ設定を変更する方法は、
別途getRootPath関数が正常に動作しなくなるおそれがあるので、
やめました。

「該当箇所のURL_DIRをSITE_URLに変更」
こちらで対応いたしました。

対応した箇所は、以下の通りです。
(※私の作成中のサイトは、携帯でのアクセスを不可にする予定ですので、携帯アクセスを予定されているかたは、同様処置を携帯サイトにも入れる必要があります。)

テンプレート修正
・ヘッダー:カゴの中、会員登録
・仮登録完了ページ:トップページへ
・登録完了ページ:トップページへ
・登録内容変更完了ページ:戻る
 (デフォルトではimageがおかしいです。)
・お問い合わせ完了時:トップページへ
・商品購入完了時:トップページへ
・ブロック表示している、カゴの中を見る、商品カテゴリ

PHP修正
・以下コード修正
[SC_CartSession.php]
で除外ページとして以下を追加。

// 前頁のURLを記録しておく
function setPrevURL($url) {
// 前頁として記録しないページを指定する。
$arrExclude = array(
"detail_image.php",
"/shopping/",
"/mypage/", //追加
"/contact/", //追加
"/entry/", //追加
"/regist/" //追加
);
$exclude = false;
// ページチェックを行う。
foreach($arrExclude as $val) {
if(ereg($val, $url)) {
$exclude = true;
break;
}
}
// 除外ページでない場合は、前頁として記録する。
if(!$exclude) {
$_SESSION[$this->key]['prev_url'] = $url;
}
}
以上です。
nanasess
投稿日時: 2010/9/7 14:52
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2340
Re: SSL遷移について
ちょっとオフトピですが,

引用:

別途getRootPath関数が正常に動作しなくなるおそれがあるので、
やめました。


そもそも, 外部サイトへのリダイレクトを防止するため, LC_Page::getLocation() 関数では, パスのみ渡せるようにしてあります.

SSL_URL へ遷移させたい場合は, LC_Page::getLocation() 関数の第三引数を true にすると良いです.
patapata
投稿日時: 2010/9/7 16:31
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
そうだったのですか。それは気づきませんでした。
しかし、私が気になった点は以下になります。

確認方法:
----------------------------------------------------------
パラメータ設定 「URL_CART_TOP」を以下に変更
URL_DIR . "cart/index.php" → SITE_URL . "cart/index.php"
----------------------------------------------------------
これだけで「カゴの中へ入れる」の動作が変わります。


詳細:
原因を追っかけていってわかったことは、
getLocationの中で呼び出している、getRootPath関数がどうもおかしい・・・ということです。
それ以上は、時間も取れず調査しておりません。

getLocationに渡される$pathはURL_DIRからSITE_URLに変更した為、
絶対パスとなります。しかしSSL(htts)ではありませんので第3引数は"escape"のままです。

この状態でgetRootPathを呼び出すと、引数には絶対パスが渡されます。

具体例をあげますと、
$path = http://www.hogehoge.jp/shop/cart/index.php
$param = 任意
$useSSL = "escape"

getLocation($path, $param = array(), $useSSL = "escape")を呼び出すと・・・
戻り値はcart/indexが省略され
http://www.hogehoge.jp/shop/?・・・・
といったパスが返されてしまいます。
nanasess
投稿日時: 2010/9/7 17:35
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2340
Re: SSL遷移について
引用:

patapataさんは書きました:

具体例をあげますと、
$path = http://www.hogehoge.jp/shop/cart/index.php
$param = 任意
$useSSL = "escape"

getLocation($path, $param = array(), $useSSL = "escape")を呼び出すと・・・
戻り値はcart/indexが省略され
http://www.hogehoge.jp/shop/?・・・・
といったパスが返されてしまいます。


getLocation() 関数は, パスから URL を生成する関数です. URL は渡せません.
こんな感じで, パスのみ渡してやる必要があります.


$parse = parse_url("http://www.hogehoge.jp/shop/cart/index.php");
$url = $this->getLocation($parse['path']);


SSL_URL が欲ければ, 第三引数を true にします.


$url = $this->getLocation($parse['path'], array(), true);


patapata
投稿日時: 2010/9/7 19:00
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
あ〜、やっと意味がわかりました。
URLパスとディレクトリのパスを、そもそも使い分けてるんですね。初歩的なことで完璧にひっかかってました。

・・・とすると、パラメータ設定でURLパスを設定する場合は、上記のような改造が必要ってことで、一応作ってみました。

getLocation関数は呼び出し元が山ほどある為、$pathにURLが渡されてもいいように修正する場合。
---------------------------------------------------
function getLocation($path, $param = array(), $useSSL = "escape") {

if (preg_match("/(" . preg_quote(SITE_URL, '/')
. "|" . preg_quote(SSL_URL, '/') . ")/", $path)) {
//SITE_URLかSSL_URLで、始まっている場合
$parse = parse_url($path);
$path = $parse['path'];
}

//既存処理
〜略〜
}
---------------------------------------------------
※検査しておりませんので、使用する場合は注意してください
patapata
投稿日時: 2010/9/9 21:43
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: SSL遷移について
テンプレート側の修正が一箇所抜けておりましたので、
一応ご報告いたします。

場所:shopping/index.tpl
(未ログインの場合表示されるページ)

会員登録ボタン
<a href="<!--{$smarty.const.URL_DIR}-->entry/kiyaku.php"

<a href="<!--{$smarty.const.SITE_URL}-->entry/kiyaku.php"
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は145,220名です
総投稿数は113,505件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2340
5
h_tanaka
2139
6
umebius
2085
7
yuh
1905
8
mcontact
1820
9
red
1585
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
805
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18
balisys
603
19 DELIGHT 572
20
patapata
502


ネットショップの壺

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

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