1.9.27でSecurity check4 が発生する

ホーム フォーラム バグ報告 1.9.27でSecurity check4 が発生する

このトピックには3件の返信が含まれ、2人の参加者がいます。3 ヶ月、 3 週間前 mtm さんが最後の更新を行いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #89375

    mtm
    参加者

    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やキャッシュによる影響はありません。

    他に試すべきこと等ありましたら教えて下さい。

    #89383

    yskysmr
    キーマスター

    こんにちは。

    ご利用のテーマに修正が必要になります。
    以下のリンク先を参考にしていただいて、修正を行ってくださいますよう、お願いいたします。
    会員ログイン時に「Security check4」がでる場合の対処法

    #89389

    mtm
    参加者

    とりあえず自己解決しましたのでご報告しておきます。

    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に上げることで回避しました。

    #89401

    mtm
    参加者

    検証しましたので報告しておきます。
    (カート内で「次へ」のボタンを押すと、トップページに移動してしまいます、のスレッドとも関連していると思います)

    結論としましては 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が処理されるというおかしな挙動となっていますので、
    続けて検証する際は、一度ブラウザを閉じてセッションクッキーを消してから行ってください。

4件の投稿を表示中 - 1 - 4件目 (全4件中)

このトピックに返信するにはログインが必要です。