前提・実現したいこと
決済サービスを用いたECサイトにてSamesite=None, Secureの対応をしましたが、
現在でも一部の環境でセッション消失の問題が発生しているとの報告があります。
調べてみたところ、以下の記事でiOSの一部の環境にてバグがあるとの記載と回避方法を発見し反映してみましたが、
https://mam-mam.net/mytech/show.php?cd=350
現在でも一部のChromeやAndroidで報告が続いており、結局最終的にどのようにすれば良いのか分からないでおります。
そのため、この対策の最終形はどのような形で収まるのかをお教えいただければ幸いです。
現在の対策
php
1$ua=$_SERVER['HTTP_USER_AGENT']; 2if(!preg_match( 3 //iPhone,iPodの場合 4 '/(CPU\siPhone\sOS\s1[0-2]|'. 5 //iPadの場合 6 'iPad;\sCPU\sOS\s1[0-2]|'. 7 //MacでSafari12以下の場合 8 'Macintosh;\sIntel\sMac\sOS\sX.*Version/1[0-2].*Safari|'. 9 //Mac10.14でSafari13以下の場合 10 'Macintosh;.*Mac\sOS\sX\s10_14.*\sAppleWebKit.*Version/1[0-3].*Safari'. 11 ')/i',$ua) 12) 13{ 14 if (PHP_VERSION_ID < 70300) { 15 $_cp = session_get_cookie_params(); 16 session_set_cookie_params($_cp['lifetime'], $_cp['path'] . '; SameSite=None', $_cp['domain'], true, true); 17 } 18 else { 19 $cookieParams = session_get_cookie_params(); 20 $cookieParams["samesite"] = "None"; 21 $cookieParams["secure"] = true; 22 } 23 session_set_cookie_params($cookieParams); 24} 25else { 26 //何もしない 27}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 10:16
2020/07/09 08:43