Zen Cart携帯モジュール サポートスレ

困った時はこちらで質問してください。回答を担当する人は特に決まっていませんので、分かる方は回答をお願いします。
アバター
sumida

ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by sumida » 2009/7/25 22:52

携帯モジュールでは、アカウントが必要なページ(セキュアページ)と、そうでないページを遷移する場合、
頻繁にログイン・ログアウトを行うようになります。
ここで、確認しておきたいのですが、
(1) logout_confirmを経由して、ログアウトをうながす流れは、zen-mobileの仕様
(2) 上記の仕様にしなければならないのは、携帯の仕様
ということでよろしいですか?

そうであれば、上記の仕様のもとに、kimonoさんの投稿でも触れていますが、
携帯での運用を、ショップ全体でnonSSLとした場合、(1)の仕様は、使い勝手が悪くなります。
つまり、ショップ全体をnonSSLにした場合、(2)については除外でき、結果(1)を除外したほうが、PCと変わらない流れになると思いました。

そこで、ショップ全体をnonSSLで運用するとした場合、
(a) セキュアページへの、注意メッセージを表示しない。
includes/classes/ZenCart/Mobile.php

コード: 全て選択

    function view_securepage_notice(){
/*
        if($this->isSecurePage()){
            return  TEXT_SECURE_PAGE_NOTICE;
        }
*/
    }

(b) logout_confirmを経由しない。
includes/classes/ZenCart/Mobile.php

コード: 全て選択

                // ノンセキュアページではログアウト状態必須
/*
                if (!empty($_SESSION['customer_id'])) {
                    // ログイン中なら、ログアウトユーザ確認
                    if($_GET['main_page'] != FILENAME_LOGOUT_CONFIRM){
                        //  $page = array('page'=>$_GET['main_page'],'mode'=>'NOSSL');
                        $_SESSION['navigation']->set_snapshot();
                    }
                    if($_GET['main_page'] != FILENAME_LOGOFF){
                        zen_redirect(zen_href_link(FILENAME_LOGOUT_CONFIRM,'','SSL'));
                    }else{
                      // zen_session_destroy();
                      // セッションはDBから削除されるけど$_SESSIONには残っていて、
                      // 「ログアウト」が表示されてしまうので、unset
                      // unset($_SESSION['customer_id']);
                    }
                }
*/

これにより、ショップ全体をnonSSLにした場合、PCと同じような最低限のログイン・ログアウトになると思います。

この運用は可能でしょうか?
よろしくお願いします。
アバター
さいきゆみ
記事: 57
登録日時: 2008/6/26 12:57
お住まい: 大阪府高槻市
連絡を取る:

別にまわし者ではないですが激安のSSLをみつけました

投稿記事by さいきゆみ » 2009/7/27 20:34

http://www.asial.co.jp/ssl-mobile/

SSLで今年も5万円ほど払うつもりでしたので、思わず乗り換えることに…。
アシアルは信用もできると思います。
今日も勉強しました!”
登れない山はない
http://yumisaiki.blogspot.com/
アバター
kikikoko

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by kikikoko » 2009/7/29 04:05

sumida さんが書きました:これにより、ショップ全体をnonSSLにした場合、PCと同じような最低限のログイン・ログアウトになると思います。

この運用は可能でしょうか?
よろしくお願いします。



auの実機(w52H)とiモードシミュレーターで試しただけなのですが、
キー操作のみの場合、PCと同じ状態になりました!

リロードをしてしまった場合、ログインが外れてしまいました。
アバター
kikikoko

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by kikikoko » 2009/7/29 04:42

すみません、ログアウトしてしまうのは、

ログイン後、カートに商品を入れた後に、カートページでリロードした場合です。

ログイン後、カートに商品を入れた状態でも、
TOPページや、各商品ページでリロードした場合は、ログイン状態は保持されています。
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by kimono » 2009/7/29 09:21

ログイン後リロードしたらログインが外れるのは仕様だと思います。
ページにもリロードすると外れる説明が書いてましたし^^;

ただ、これもログイン関連の使いづらい面だと思いますので、何かしら他の対策ができないかと思いますね。
アバター
竹村
記事: 39
登録日時: 2005/5/20 11:38
お住まい: 東京都

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by 竹村 » 2009/7/29 21:52

sumidaさん
Cc: kimonoさん

竹村です。


sumida さんが書きました:携帯モジュールでは、アカウントが必要なページ(セキュアページ)と、そうでないページを遷移する場合、
頻繁にログイン・ログアウトを行うようになります。
ここで、確認しておきたいのですが、
(1) logout_confirmを経由して、ログアウトをうながす流れは、zen-mobileの仕様
(2) 上記の仕様にしなければならないのは、携帯の仕様
ということでよろしいですか?

(1)はzen-mobileの仕様です。
(2)は、携帯のセキュリティに問題があるため、(1)の対策が必要である。という感じです。

(2)がどんな問題で、(1)はどう対応したのかを説明します。


■携帯電話のsession fixationについて

よくある携帯電話向けセッションの実装は、ログイン後にセッションIDをパラメータとして付与する方式がありますが、
このセッションID付きのURLを間違って掲示板に貼り付けてしまった場合、そのURLにアクセスしたら、
ログイン済みとなるので、そのままセキュアページにアクセスしたら、個人情報が漏洩してしまう問題があります。
(セッションID付きのURLをメルマガに貼って送ってしまったらさらにマズイ!)


■zen-mobileでの回避方法

個人情報が表示される箇所(セキュアページ)では、リクエスト毎にセッションIDをrecreateすることで、
毎回現在アクセスしているセッションIDが無効化されるため、session fixationを回避できます。

つまり、画面遷移するたびにセッションIDが書き換わるような仕様になっているわけです。
よって、『リロードするとログアウトされる』などの問題がおこりますが、万が一セッションIDが
洩れてしまっても、既にそのセッションIDは無効状態になっているので、個人情報は洩れない。
というポリシーに基づいた仕様になってます。


sumida さんが書きました:そうであれば、上記の仕様のもとに、kimonoさんの投稿でも触れていますが、
携帯での運用を、ショップ全体でnonSSLとした場合、(1)の仕様は、使い勝手が悪くなります。
つまり、ショップ全体をnonSSLにした場合、(2)については除外でき、結果(1)を除外したほうが、PCと変わらない流れになると思いました。

こちらは、SSLだと(2)の制約により(1)が必要になるので、nonSSLなら(2)の制約がないので(1)は要らないのではないか?
という意味で解釈してよいですか?

session fixationの脆弱性は、SSLでもnonSSLでも関係なく、
URLにセッションIDがパラメータとして書いてあり、そのURLにアクセスするとセッションの保持する値にアクセスできてしまうようなら、
それはsession fixationの問題が起きます。


sumida さんが書きました:そこで、ショップ全体をnonSSLで運用するとした場合、
(a) セキュアページへの、注意メッセージを表示しない。
includes/classes/ZenCart/Mobile.php

コード: 全て選択

    function view_securepage_notice(){
/*
        if($this->isSecurePage()){
            return  TEXT_SECURE_PAGE_NOTICE;
        }
*/
    }

(b) logout_confirmを経由しない。
includes/classes/ZenCart/Mobile.php

コード: 全て選択

                // ノンセキュアページではログアウト状態必須
/*
                if (!empty($_SESSION['customer_id'])) {
                    // ログイン中なら、ログアウトユーザ確認
                    if($_GET['main_page'] != FILENAME_LOGOUT_CONFIRM){
                        //  $page = array('page'=>$_GET['main_page'],'mode'=>'NOSSL');
                        $_SESSION['navigation']->set_snapshot();
                    }
                    if($_GET['main_page'] != FILENAME_LOGOFF){
                        zen_redirect(zen_href_link(FILENAME_LOGOUT_CONFIRM,'','SSL'));
                    }else{
                      // zen_session_destroy();
                      // セッションはDBから削除されるけど$_SESSIONには残っていて、
                      // 「ログアウト」が表示されてしまうので、unset
                      // unset($_SESSION['customer_id']);
                    }
                }
*/

これにより、ショップ全体をnonSSLにした場合、PCと同じような最低限のログイン・ログアウトになると思います。

この運用は可能でしょうか?

これは良いかもしれない、と思ったので聞いてみます。

私の理解があっているか微妙なのですが、上記でやりたいこととしては、

* ログインしたら、ページ毎にユニークなセッションIDが付与される仕組みはそのまま
* ログイン中は、ノンセキュアページにもユニークなセッションIDが付与されるようにする

これにより、PCと同じように最低限のログイン・ログアウト回数になる。

つまり、現状の「セキュアページからノンセキュアページに移動する時にログアウトする」という仕様が必要ないのではないか?
と、思ったので確認してみます。
アバター
竹村
記事: 39
登録日時: 2005/5/20 11:38
お住まい: 東京都

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by 竹村 » 2009/7/30 16:37

sumidaさん
Cc: kimonoさん

竹村です。

竹村 さんが書きました:* ログインしたら、ページ毎にユニークなセッションIDが付与される仕組みはそのまま
* ログイン中は、ノンセキュアページにもユニークなセッションIDが付与されるようにする

これにより、PCと同じように最低限のログイン・ログアウト回数になる。

つまり、現状の「セキュアページからノンセキュアページに移動する時にログアウトする」という仕様が必要ないのではないか?
と、思ったので確認してみます。

この件、聞いてきました。

> recreate時は、リロードやブラウザバックで
> ログアウトされます、という自動で注意書きを出しているのは
> 知っていると思うのですが、
>
> ログイン後にトップに戻ったときにrecreateをするということは、
> ログイン時とログアウト時で、トップに注意書きが出たりでなかったり、
> ということですよね。
>
> これは、利用者にとってわかりにくいし、
>
> 商品検索などで、ブラウザバックがつかえないのは
> かなりユーザービリティ的にもきついと思ったので、
>
> このような仕様になったのだと思います

ブラウザバックが使えなくなる、というのは確かに大きな問題ですね。

どう対応すべきか、即思い浮かびませんが、まずは情報共有ということでこちらに投げておきます。
アバター
sumida

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by sumida » 2009/7/30 19:53

竹村 さんが書きました:* ログインしたら、ページ毎にユニークなセッションIDが付与される仕組みはそのまま
* ログイン中は、ノンセキュアページにもユニークなセッションIDが付与されるようにする

これにより、PCと同じように最低限のログイン・ログアウト回数になる。

つまり、現状の「セキュアページからノンセキュアページに移動する時にログアウトする」という仕様が必要ないのではないか?
と、思ったので確認してみます。

まさに、その通りです。

logout_confirm周りの仕様が良く分からなかったものですから、
sumida さんが書きました:携帯モジュールでは、アカウントが必要なページ(セキュアページ)と、そうでないページを遷移する場合、
頻繁にログイン・ログアウトを行うようになります。
ここで、確認しておきたいのですが、
(1) logout_confirmを経由して、ログアウトをうながす流れは、zen-mobileの仕様
(2) 上記の仕様にしなければならないのは、携帯の仕様
ということでよろしいですか?

この質問をさせていただきました。
(初めて携帯を持ったのが、この5月なものですから!!)
アバター
sumida

Re: ショップ全体nonSSLでのセキュアページの扱いについて

投稿記事by sumida » 2009/7/30 22:19

丁寧な解説ありがとうございました。
私なりにまとめて見ました。

zen-mobileでの運用において、
(1) セッションIDは、クッキーを使用しないため、URLの末尾に付加している。
(2) ここで、利用者が誤って、セッションID付きのURLを掲示板等に掲載し、悪意ある者が、このセッションID付きのURLを使用すると、利用者の個人情報が漏れてしまう恐れがある。
(3) そこで、利用者の個人情報が含まれていないセッション(nonSSL使用時)は、セッションIDをそのままとし、個人情報が含まれているセッション(SSL使用時)は、画面遷移するたびに、セッションIDを換えている。

ここで、もし、強制的にlogout_confirmを経由しない(ログアウトさせない)運用をしたとします。
SSL使用画面の画面遷移は、セッションIDを換えているため、上記の(3)と同じ状況にある。
しかし、ログイン状態のままでのnonSSL使用画面の画面遷移は、セッションIDが変化しないため、上記の(2)の状況になってしまう。

結局、強制的にlogout_confirmを経由しない運用は、セキュリティを弱めるだけである。

ということですね。

余談ですが、
どうしても、強制的にlogout_confirmを経由しないで、上記と同じレベルのセキュリティを実現して運用しようとすれば、SSL使用画面・nonSSL使用画面関係なく、画面遷移するたびにセッションIDを換え、「リロード・戻る」についての注意書きを、常に表示しなければならなくなりますね。

もう一つ余談ですが、
PCにおいて、「クッキーを使用しない」で運用した場合、セッションIDについて同様の問題を含んでいるということですね。
アバター
のりまき

注文確認メールで$commentがとぎれる

投稿記事by のりまき » 2009/8/06 15:10

携帯モジュールの注文確認メールをPC用と同じものが書き出されるようにしたいと思っています。

ですので、PC版tpl_modules_checkout_process_email.phpをzen-mobileのほうのtemplateフォルダに上書きしてみたのですが、届いたメールをみると$commentの本来コメントが表示されるところで表示がとぎれてしまっていました。
$commentの表記を消してみると、あとの配送先住所などは表示される状態です。

現状、$commentのところに希望配送時間などが書き出されるようにしているので、
なんとか表示させたいと思ってます。

PCと同じ内容を書きだすためにはどうしたらよいでしょうか??
ご回答いただければと思います。
どうぞよろしくお願いします。
アバター
ゲスト

Re: 注文確認メールで$commentがとぎれる

投稿記事by ゲスト » 2009/8/07 22:34

のりまき さんが書きました:届いたメールをみると$commentの本来コメントが表示されるところで表示がとぎれてしまっていました。
$commentの表記を消してみると、あとの配送先住所などは表示される状態です。

コメントに半角カタカナが混ざっているとか。
アバター
のりまき

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by のりまき » 2009/8/08 13:43

>ゲストさん
ご返信ありがとうございます。

半角カナということはなかったのですが、なんか管理画面に送られてくる時点で文字化けしてしまっているようでした。

半角カナではなく、半角数字だったんですが、そのような場合も問題あるのでしょうか?(ちなみに、お届け希望時間とかを入力してもらっているので、14:00?15:00みたいなかんじの内容が入ってます。)

文字のエンコードとかをどこかに指定する…というようなことで解決するのでしょうか。
アバター
takahasi

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by takahasi » 2009/8/18 15:46

下記の投稿と同内容ですが、スレッドが違うようなので、改めて投稿させていただきます。
viewtopic.php?f=2&t=4086&hilit=Paypal

携帯モジュール をインストールするとPayPal決済で下記のような不具合が発生します。

○PCからアクセスした場合

決済はできるが、ZenCart側では購入された記録が残らず、ユーザにはメイルも届かない。
(PayPalからのメイルは届く)
そのため、ユーザはお金だけ払って、商品は得られないことになる。

○携帯電話からアクセスした場合

決済ができない。
「申し訳ありませんが、お客様が最後に行ったアクションを完了できませんでした」
または
「PayPal Mobile is not available in your country at this time.」
というメッセージがPayPalのサイトで表示される。
これはPayPal側の問題で、日本からのアクセスは携帯電話非対応のためのようです。

携帯電話からのアクセスでは仕方がないにしても、PCからのアクセスでの不具合を解消したいと思います。
方法がわかりましたらご教示いただけますでしょうか。

なお、使用しているのは下記環境です。
zen-cart-v1.3.0.2-l10n-jp-4
携帯版モジュール0.9-1
(スナップショット版は導入していません)
アバター
こまりん

PCサイトのSSLページに移行しようとするとエラーになる

投稿記事by こまりん » 2009/8/25 17:03

携帯モジュールをインストールしてみましたが、
PCサイトのSSLページに移行しようとするとエラーになってしまいました。
エラー内容は下記になります。

Fatal error: Cannot redeclare class pear in /usr/home/gt304083/secure/includes/classes/pear/Net/UserAgent/PEAR.php on line 103

http://ページは問題なく表示されますが
https://ページが全て同じエラーが表示されます。

●SSLページはsecureフォルダに入れる必要があるサーバになります。
●独自ドメインSSLです。

振り分け関係だというところまではわかったのですが、
どのように修正すればいいかがわからず困っております。
宜しくお願いいたします。

--------------------------
環境
Zen Cart 1.3.0.2-l10n-jp-5
アバター
ゆっきー

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by ゆっきー » 2009/8/27 18:03

はじめまして。

最近、zen-cart-v1.3.0.2-l10n-jp-5.zipをインストールしまして
携帯モジュールとUltimate_SEO_URLsを入れようと思っているのですが
どうも、うまく共存できないみたいです。

includes/functions/html_output.phpが問題のようですが、
どういじれば良いのかさっぱりです。

せめてPC側のみUltimate_SEO_URLsを適用して
携帯側はそのままで、というように分けられればと考えているのですが、
いじっているうちに、どちらのページも見れなくなったりという状況です。

どなたかよい方法があれば、ご教示をよろしくお願い致します。
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by kimono » 2009/8/28 15:37

こまりんさん

通常の状態では共有SSLではZen Cartは上手く動作しないはずですが、掲示板などを見て、共有SSLでZen Cart単体で動作するようにカスタマイズなどはされておりますでしょうか?
また、携帯モジュールと、Zen Cartは両方共、secure?フォルダに入れておりますでしょうか?
ただ、このような場合の動作は考えて作られてないと思いますので、携帯モジュールなどに、このスレッドの過去の方にありますが、携帯ではSSLは動作しないように設定などした方がいいと思います。
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by kimono » 2009/8/28 15:42

ゆっきーさん

私もこのスレッドの過去を見てもらえば分かりますように、同じことかいてます。
その後、一応、動作させることはできたのですが、かなり修正するというか、カスタマイズを行なうことが必須です。ちなみに携帯では、携帯のメーカーなどにもよりますが、リライトなどは行なえません。別のサイトに飛びますがいいですか?と前ページで、うざいセキュリティ関係の忠告が出てしまいます。
そのため単純に、携帯モジュールの時は、Ultimate_SEO_URLsを使わないというようにする必要があります。

でも、今はSEO的にもあまり意味ないですし、色々コアをハックしていく必要があるので、動作もおかしくなることなどもあり、その後のバージョンアップなど様々な要素を考えますと、携帯を使うならUltimate_SEO_URLsはやらないほうがいいと思いますけどね :wink:
アバター
ゆっきー

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by ゆっきー » 2009/8/28 17:23

kimonoさん、ご回答ありがとうございます。

kimono さんが書きました:今はSEO的にもあまり意味ないですし、色々コアをハックしていく必要があるので、動作もおかしくなることなどもあり、その後のバージョンアップなど様々な要素を考えますと、携帯を使うならUltimate_SEO_URLsはやらないほうがいいと思いますけどね


静的URLがSEO的に意味がなくなってきているとは
何かで聞いた覚えがあるのですが、本当のことなんですね。

特に気にする必要がないようであれば、Ultimate_SEO_URLsは
使わない方向で構築していきたいと思います。

ありがとうございました。
アバター
こまりん

Re: Zen Cart携帯モジュール サポートスレ

投稿記事by こまりん » 2009/9/02 13:33

kimonoさんご返答ありがとうございます。

説明不足で申し訳ございません。
SSLは共有SSLではなくSSLサーバー証明書がある専用のSSLになりますので、
PCサイトは現行問題なく稼働しております。

携帯モジュールをインストール後、問題なく稼働していたPCサイトでエラーが発生したので、
現在は携帯モジュールを一端削除した状態になります。

共有SSLではない場合、やはり全てのファイルをきちんと
両フォルダに入れていなかったことが原因のようですね。

エラーを恐れて再度インストールをしていませんでしたが、
もう一度チャレンジしてみます。
ありがとうございました。
アバター
abc

Re: 携帯モジュールをインストールしたのですが

投稿記事by abc » 2009/9/03 06:59

同じところでつまりました。

今後同じミスする人もいるかと思いますので書いときます。

管理画面の[追加設定・ツール]の[SQLパッチのインストール]で
ダウンロードファイルの中にある :D zc_install/mobile.sqlのSQL文を実行するとエラーが表示されなくなります。

“Zen Cart 質問コーナー” へ戻る