バグ報告 > フロント機能 > ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2009/6/28 20:08
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: ブラウザの「戻る」ボタンで「ページの有効期限切れ」が表示される等の問題 引用:
商品一覧のページ数遷移で検証したところ問題ないようです。 IE6 & FF3 キャッシュされるとマズい処理への副作用が若干心配なくらいですかね。既存も明確なポリシーがあるわけではないと思いますし、実質的に問題ない予感はします。
|
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ですが現状は下記のページ処理で呼び出しているようです。
で気になるのは、もともとこれらのページで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 でその問題が発現しなくなっていること を確認いたしました。報告まで。
|
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様が仮コミットされた箇所以外にも、無意味な(むしろ弊害のある)指定箇所無いか検討して頂きたいです。意味のある箇所はドキュメントやソースコメントにその意味を記述して頂けると助かります。 また、不要箇所については、コメントアウトではなく、行削除での対応を希望します。
|
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 を設定したことによって、わりとスマートに解決したものと勘違いしてました。 失礼しました!
ということはやはり、というか結局ここでなんですね。 こちらの方法でできれば問題ないんではないでしょうか。 ただ、必要なページのポリシーはちゃんと決めないといけないですね。 個人的には、現状、有効期限切れが出るとか出ないとか、昔の意図とかに関わらず、あくまでも現状のサイトの 仕様を考えた上でポリシーを決める必要があると思います。 そこも含めて、実際にご使用されてる皆様にご意見など伺えればありがたいと思います。 いかがなもんでしょうか? |
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 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |