A cookie associated with a cross-site resource at was set without theという警告がChromeで表示されて、reCAPTCHA v2の送信ボタンのSameSite
attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set withSameSite=None
andSecure
. You can review cookies in developer tools under Application>Storage>Cookies and see more details at and .
disabled
が外れない現象に遭遇。
- Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
- Cookies default to SameSite=Lax – Chrome Platform Status
- Chrome で SameSite=None に関する Cookieについての警告が表示される | ラボラジアン
- SameSite cookie recipes
setcookie
関数の第二引数はどうする(第一引数は今回はgoogle.com
で良いと思いますが)のか……。
まだ気付いて1時間程度なのでざっとしか調べられていませんが、ひとまずメモしておきます。
追記
以下のようなコードを試しに書いてみました(もちろんhttpsのデモサイト)が特に変化なし。テストコード1
//Cookie Chrome > 77 等用
if(PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) {
setcookie('CONSENT', '', ['samesite' => 'None', 'secure' => true, 'httponly' => false, 'domain' => 'google.com']);
setcookie('NID', '', ['samesite' => 'None', 'secure' => true, 'httponly' => false, 'domain' => 'google.com']);
}
else {
header('Set-Cookie: CONSENT="";DOMAIN="google.com";Secure;SameSite=None', false);
header('Set-Cookie: NID="";DOMAIN="google.com";Secure;SameSite=None', false);
}
上述リンクを参考に、Cookieの名前を決めて空の値でセット。
テストコード2
//Cookie Chrome > 77 等用
if(PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) {
setcookie('SIDCC', '', ['samesite' => 'None', 'secure' => true, 'domain' => '.google.com']);
}
else {
header('Set-Cookie: SIDCC="";Domain=".google.com";secure;SameSite=None', false);
}
Chromeのコンソールでレスポンスを読んでName属性を変更。
テストコード3
//Cookie Chrome > 77 等用
if(PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) {
setcookie('SIDCC', '', ['samesite' => 'None', 'secure' => true, 'domain' => '.google.com']);
setcookie('SIDCC', '', ['samesite' => 'None', 'secure' => true, 'domain' => 'csp.withgoogle.com']);
setcookie('SIDCC', '', ['samesite' => 'None', 'secure' => true, 'domain' => 'www.gstatic.com']);
}
else {
header('Set-Cookie: SIDCC="";Domain=".google.com";secure;SameSite=None', false);
header('Set-Cookie: SIDCC="";Domain="csp.withgoogle.com";secure;SameSite=None', false);
header('Set-Cookie: SIDCC="";Domain="www.gstatic.com";secure;SameSite=None', false);
}
関係しそうなドメインを全て追記。
3つ共ダメでした。 さて、どうしたものか……いっそreCAPTCHA v3に手を付けてみるとか……?でもv3はもっと頻繁にやり取りするでしょうし……うーん。
reCAPTCHA v3
- TECHSCORE|reCAPTCHA v3 入れてみた | TECHSCORE BLOG
- Google reCAPTCHA v3を設置する方法 ? elevenlab BLOG
- Googleの「reCAPTCHA v3」を実装する at softelメモ
参考
- Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
- Reject insecure SameSite=None cookies – Chrome Platform Status
- Chrome で SameSite=None に関する Cookieについての警告が表示される | ラボラジアン
- SameSite cookie recipes
- samesite-examples/php.md at master ・ GoogleChromeLabs/samesite-examples
- HTML5 – クロムのディベロッパーツールで表示されるエラーの意味と解決法について|teratail
- javascript – Trying the SameSite attribute fix for the google recaptcha v2 warning on Chrome 77 doesn’t seem to be working for me? – Stack Overflow
- Cookie problem associated with Recaptcha v2 and samesite=none : techsupport
- Google reCaptcha v.2 causes cross-site cookie warnings in Chrome browser – Stack Overflow
- reCaptcha v2 does not work if third party cookies are disabled and does not give feedback to the user ・ Issue #155 ・ google/recaptcha
- PHP: setcookie – Manual
- PHP: header – Manual
- 【PHP超入門】Cookieとセッションについて – Qiita