バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > フロント機能 > ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2009/6/28 20:08
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
引用:

コミュ版にコミットしてみました。
チェンジセット 18143

様子見お願いします。


商品一覧のページ数遷移で検証したところ問題ないようです。
IE6 & FF3

キャッシュされるとマズい処理への副作用が若干心配なくらいですかね。既存も明確なポリシーがあるわけではないと思いますし、実質的に問題ない予感はします。


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

KAJI
投稿日時: 2009/6/29 17:20
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
株式会社ロックオンの梶原です。

チェンジセット 18143
こちらを少し試してみました。
(FF2にて)

確かに商品一覧は正常に動作しているようです。
ただ、2回連続で商品を購入しようとした場合
 payment.php(支払い方法変更時)
 deliv.php(遷移しようとした時)
などにて、以下の文言のエラーが発生します。


この手続きは無効となりました。以下の要因が考えられます。
・セッション情報の有効期限が切れてる場合
・購入手続き中に新しい購入手続きを実行した場合
・すでに購入手続きを完了している場合


具体的に見れていなく本当に申し訳ないですが、本改修ではキャッシュを使用している複数の処理において、影響があり、若干問題があるのかもしれません。
コミュ版や他の環境ではどうでしょうか??

もう少し調査しようと思いますが、以上取り急ぎご報告まで。

ramrun
投稿日時: 2009/6/29 20:03
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
KAJIさん

allowClientCache()は使用したいページで意図的に呼び出すものですから、使いたくない場合は消せばよいと思います。

comuですが現状は下記のページ処理で呼び出しているようです。
data/class/pages/admin/contents/LC_Page_Admin_Contents_CampaignCreateTag.php
data/class/pages/admin/products/LC_Page_Admin_Products.php
data/class/pages/campaign/LC_Page_CampaignApplication.php
data/class/pages/entry/LC_Page_Entry_EmailMobile.php
data/class/pages/mypage/LC_Page_Mypage.php x2
data/class/pages/mypage/LC_Page_Mypage_Change.php
data/class/pages/mypage/LC_Page_Mypage_Delivery.php
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php
data/class/pages/mypage/LC_Page_Mypage_Favorite.php x2
data/class/pages/mypage/LC_Page_Mypage_History.php x2
data/class/pages/products/LC_Page_Products_List.php
data/class/pages/shopping/LC_Page_Shopping.php
data/class/pages/shopping/LC_Page_Shopping_Complete.php
data/class/pages/shopping/LC_Page_Shopping_Confirm.php
data/class/pages/shopping/LC_Page_Shopping_Deliv.php
data/class/pages/shopping/LC_Page_Shopping_Payment.php


で気になるのは、もともとこれらのページでallowClientCache()を使おうとしていたわけですから、現在はある意味、意図通り?のはずです。
というか、このあたりの仕様(本来どうしたかったのか)はKAJIさんのほうが詳しいのでは(汗)。

とりあえず私が調べた感じだと、session.cache_limiterのデフォルトがnoneのときの挙動をallowClientCache()でコントロールしていると勘違いしている節があるような気がします。
※実際はデフォルトでno-cacheの設定がされていることが多い

仮ですが下記のとおりにしてみましたので、よければ再度確認してみてください。
チェンジセット 18149
seasoft
投稿日時: 2009/6/29 20:17
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
EC-CUBEコミュニティ(eccube-comu) にて
・KAJI様のご指摘の問題が発現すること
・ramrun 様コミットの r18149 でその問題が発現しなくなっていること
を確認いたしました。報告まで。


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

KAJI
投稿日時: 2009/6/30 16:42
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
株式会社ロックオンの梶原です。

なるほど。
よく分かりました。

購入フローに関しては、Ver1系から $this->allowClientCache(); がソース内に入っていたようです。
意図としては、やはり、ブラウザでのヒストリーバック時の有効期限切れを防ぐためだったと予想されます。
(ただし、機能していませんでしたが。)
もうかなり昔の話ですので、昔の意図はどうあれ、今回コミュニティの意見にて、正常な状態に戻す、ということで問題ないと思います。

チェンジセット 18149に関してですが、ramrun様がおっしゃるように、あまり意味のない(というか間違った?)使用をしているように
思いますので、基本的には購入フローでは $this->allowClientCache(); は必要ないと思います。

私の方でも、ramrun様 の修正ソースにて、購入フローが正常に通ること、ヒストリーバック時に有効期限切れにならないことを確認しました。

ちなみに、今までのソースですと、IEでは
 支払い方法画面(支払い方法を何回か選択し直す)
  →購入確認画面に遷移
  →購入確認画面から、ヒストリバックにて支払い方法選択画面に遷移
 以上にて、有効期限切れ画面に飛ばされることを確認いたしました。

上記のように購入フローにて(商品一覧もそうですが)、有効期限切れ画面に行きますと、大きな機会損失になり兼ねないと思いますので、
今回、色々検討、修正をいただき、大変ありがたく思います。

今のところ、仮でコミットということですが、こちらで特に異論なさそうなら、正式版にもコミットしてみようと思いますが、良いですか?

もし、もっとスマートに出来る!などあればまた検討してみたいと思いますが。
seasoft
投稿日時: 2009/6/30 19:30
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
引用:
今のところ、仮でコミットということですが、こちらで特に異論なさそうなら、正式版にもコミットしてみようと思いますが、良いですか?


ramrun様が仮コミットされた箇所以外にも、無意味な(むしろ弊害のある)指定箇所無いか検討して頂きたいです。意味のある箇所はドキュメントやソースコメントにその意味を記述して頂けると助かります。

また、不要箇所については、コメントアウトではなく、行削除での対応を希望します。


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

ramrun
投稿日時: 2009/6/30 19:32
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
KAJIさん

引用:
仮でコミットということですが、こちらで特に異論なさそうなら、正式版にもコミットしてみようと思いますが、良いですか?

ちょっと待ってください(汗)。

説明しづらいのですが、allowClientCache()をコメントアウトしたのは、早い話、いままでどおりですよね。
その状況において「有効期限切れがでる」人と「問題ない」人がいたのがいままで放置されてきたこの件の問題です。

で、有効期限切れがでる人は
php.iniのsession.cache_limiterがno-cache
allowClientCache()が無効なのでno-cache

問題ない人は
php.iniのsession.cache_limiterがnone
allowClientCache()が無効なのでnone

であったと予想できます。

私が仮コミットでSC_SessionFactory_UseCookie.phpにnoneを設定したのは、仮にphp.iniでno-cacheが設定してあっても
php.iniのsession.cache_limiterがno-cache
SC_SessionFactory_UseCookie.phpでnone
allowClientCache()が無効なのでnone

と、確認時に環境に影響されないようにしたものです。

ですがこれはスレ主であるk-sophiaさんが懸念している「サイト全体に適用してもいいものなのか」ということに戻ってきます。

なので基本はno-cacheで、必要なページはallowClientCache()でnoneにするのがいいのではないかと思うのですが、いかがでしょうか?

EC-CUBE全体がnoneで問題ないのであれば、allowClientCache()自体が必要ないということになりますので。
KAJI
投稿日時: 2009/6/30 20:42
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
株式会社ロックオンの梶原です。

SC_SessionFactory_UseCookie.phpにnone を設定したことによって、わりとスマートに解決したものと勘違いしてました。
失礼しました!


なので基本はno-cacheで、必要なページはallowClientCache()でnoneにするのがいいのではないかと思うのですが、いかがでしょうか?


ということはやはり、というか結局ここでなんですね。
こちらの方法でできれば問題ないんではないでしょうか。

ただ、必要なページのポリシーはちゃんと決めないといけないですね。
個人的には、現状、有効期限切れが出るとか出ないとか、昔の意図とかに関わらず、あくまでも現状のサイトの
仕様を考えた上でポリシーを決める必要があると思います。

そこも含めて、実際にご使用されてる皆様にご意見など伺えればありがたいと思います。
いかがなもんでしょうか?

ramrun
投稿日時: 2009/7/2 19:55
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
引用:
そこも含めて、実際にご使用されてる皆様にご意見など伺えればありがたいと思います。

none/nocache/private/private_no_expire/publicがそれぞれどういいう意味を持つのかがはっきりしていないと、意見を出すのは難しいかと(汗)。

none 何もしない(キャッシュに関するヘッダを出力しない)
nocache クライアント/プロキシキャッシュ不許可
private クライアント許可/プロキシ不許可
private_no_expire クライアント許可/プロキシ不許可
 ※Expiresヘッダ(有効期限)を出力しない
public クライアント許可/プロキシキャッシュ許可

個人的に調べたところですが、nocacheが一番安全っぽいですけど「キャッシュするんじゃないよ」というヘッダに従うかどうかはブラウザやプロキシの設定次第みたいです(汗)。
またieの「ページの有効期限...」もあります。

noneはpublicに近い状態で、キャッシュの有効期限について、たとえばieなら「自動的に確認する」となる模様。
だからprivate_no_expire(有効期限なしのキャッシュ)よりも上手に立ち回ってくれる感じです。

sslなどの暗号化されたページに関してはプロキシにキャッシュされたとしても問題ないものと思われます。
キャッシュが効いたほうが、リクエストが発生しないのでサーバにも優しいというのもあります。

ちなみにYahooは
普通のページはキャッシュが有効で
ログイン後のページは
 Cache-Control: private
 Pragma: no-cache
 Expires: Thu, 05, Jan 1995 22:00:00 GMT
みたいになってました。

Pragma: no-cacheがプロキシに有効みたいで(といっても先に書いたように従わないプロキシもあるかも)、それでいてprivateを指定しているというなんとも変わった設定です。
プロキシになるべくキャッシュさせないという考えみたいです。
またなるべくブラウザの戻るを必要としないような遷移のさせかたになっているように感じます。

ちなみに上記Yahooの設定は、現EC-CUBEでは一部引っかかるところがありました。

とりあえずssl遷移さえきちんとしていればnoneでいいかなと。
kuro
投稿日時: 2009/7/3 19:08
対応状況: −−−
半人前
登録日: 2008/7/23
居住地:
投稿: 20
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題
こちらのトピックの話題とは少しずれてしまうのですが、
ご購入手続きの過程でブラウザの「戻る」「進む」ボタンでの遷移を行うと「不正なページ移動です。」エラーが出てしまうのは、
どうしても免れないことなのでしょうか

セキュリティ上仕方ないとは思うのですが、
「不正なページ移動」エラーでのお客様からの問い合わせがすごく多いのです・・・

IEの利用者がほとんどのためか、php.iniやこちらのトピックの方法で「ページの有効期限切れ」が出ないようにしたところ、
お問い合わせが増えてしまいました。
多分ブラウザの「戻る」で戻った時に、キャッシュされたページが正常に表示されてしまうため、
「次へ」を押した後お客様も自分がした操作の何がおかしかったのか検討がつかなく、混乱してしまうのだと思います。
皆様のショップではこのようなことはありませんか?
« 1 (2) 3 4 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,973名です
総投稿数は110,019件です

投稿数ランキング

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.