1.9.27でSecurity check4 が発生する
-
投稿者投稿
-
2020年3月6日 3:37 PM #89375mtm参加者
WordPress のバージョン:5.3.2
Welcart のバージョン:1.9.27
PHP のバージョン:7.0.33
Welcart専用の拡張プラグイン:なし
ご利用のテーマ:自作
症状を確認したブラウザ:IE11, Microsoft Edge
サーバー:エックスサーバー
SSLの利用:常時SSL症状:
a. ログイン画面からログインすると “Security check4” と表示されログインできない
b. 商品をカートに入れ、購入手続きをしようとするとトップページに戻される。またカートは空にされている。またカートページ → カートページの移動でもカート商品がなくなっている。上記はいずれも IE11 または Edge のみで発生。
Chrome / Firefox / Safari では正常動作することを確認。対応1:
会員ログイン時に「Security check4」がでる場合の対処法
https://www.welcart.com/archives/techinfo/techinfo-20200305
をログインページに挿入しましたが、Security check4 となる症状は変わらず。対応2:
usc-e-shop/classes/usceshop.class.php の3805行をコメントアウトし、dieしないようにして nonce チェックを飛ばすようにしてみたところ、症状a は収まりログインできるようになったが、症状b は変わらなかった。対応3:
テーマを Welcart Default Theme Ver1.3 に変更し、Welcart本体および WP Multibyte Patch 以外のプラグインを無効化。
症状変わらず。ただしカートページにて、下記エラーが出力される。
Warning: count(): Parameter must be an array or an object that implements Countable in /home/kaminari2009/magicword.jp/public_html/nippon-tea.test/wp-includes/post-template.php on line 316
カート商品の有無関係なく表示される。なお、いずれもInPrivateモードで操作しており、異常なCookieやキャッシュによる影響はありません。
他に試すべきこと等ありましたら教えて下さい。
2020年3月6日 4:47 PM #89383yskysmrキーマスターこんにちは。
ご利用のテーマに修正が必要になります。
以下のリンク先を参考にしていただいて、修正を行ってくださいますよう、お願いいたします。
会員ログイン時に「Security check4」がでる場合の対処法2020年3月6日 8:35 PM #89389mtm参加者とりあえず自己解決しましたのでご報告しておきます。
1.9.27から Cookie の SameSiteを設定しているようですね。
その際、PHP7.3未満のバージョンだと、IE/Edgeでうまく管理できないCookieが作成されているようです。
PHP7.3にしたところIE/Edgeで動作するようになりました。検証が不十分ではありますが、調査結果を報告しておきます。
ソースの該当箇所は classes/usceshop.class.php 1237行
session_set_cookie_params( 0, USCES_COOKIEPATH, ‘;SameSite=None’, $sslonly, $httponly );
で、’; SameSite=None’ のように半角スペースを挿入することで PHP7.0.33の検証環境で正常に動作しました。
ただ(ここが検証が不十分な点なのですが)
本番環境で同様の処置をしても改善しなかったため、結局PHP7.3に上げることで回避しました。2020年3月9日 5:08 PM #89401mtm参加者検証しましたので報告しておきます。
(カート内で「次へ」のボタンを押すと、トップページに移動してしまいます、のスレッドとも関連していると思います)結論としましては session_set_cookie_params のドメイン名を省略した場合に IE/Edge で処理できないセッションクッキーとなるようです。
IE/Edgeで正常に動作しない記述
session_set_cookie_params( 0, ‘/cookie/’, ‘;SameSite=None’, $sslonly, $httponly );IE/Edgeでも正常動作する記述
session_set_cookie_params( 0, ‘/cookie/’, ‘kaminari2009.xsrv.jp;SameSite=None’, $sslonly, $httponly );https://kaminari2009.xsrv.jp/cookie/ に検証環境を作りました。
ソース: https://kaminari2009.xsrv.jp/cookie/cookie.zip上のリンクが IE/EdgeでCookieで処理できないケースで、
下のリンクが全ブラウザで処理できるケースです。なお、上のリンクであってもブラウザバックをするとなぜかCookieが処理されるというおかしな挙動となっていますので、
続けて検証する際は、一度ブラウザを閉じてセッションクッキーを消してから行ってください。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。