Saya membuat ekstensi chrome dan dari popup.js saya memanggil skrip PHP (Menggunakan Xhttprequest) yang membaca cookie. Seperti ini:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
Tapi saya mendapatkan peringatan ini karena kesalahan dalam ekstensi.
Cookie yang terkait dengan sumber daya lintas-situs di (Inilah domain saya) disetel tanpa
SameSite
atribut. Rilis Chrome di masa mendatang hanya akan mengirimkan cookie dengan permintaan lintas situs jika diatur denganSameSite=None
danSecure
. Anda dapat meninjau cookie dalam alat pengembang di bawah Aplikasi> Penyimpanan> Cookie dan melihat rincian lebih lanjut di https://www.chromestatus.com/feature/5088147346030592 dan https://www.chromestatus.com/feature/563352162218808032 .
Saya mencoba membuat cookie seperti ini tetapi tidak membantu.
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);
Ikuti instruksi dari pertanyaan ini .
setcookie
pengganti yang membutuhkan argumen tambahan$sameSite
. Argumennya bisaNone
,Lax
atauStrict
. Antarmuka OOP juga tersedia.Jawaban:
Saya juga dalam "coba-coba" untuk itu, tetapi jawaban dari Google Chrome Labs 'Github ini sedikit membantu saya. Saya mendefinisikannya ke dalam file utama saya dan berfungsi - yah, hanya untuk satu domain pihak ketiga. Masih membuat tes, tapi saya ingin memperbarui jawaban ini dengan solusi yang lebih baik :)
Jika Anda memiliki PHP hingga 7.2, seperti server saya:
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Atau jika host Anda sudah diperbarui ke 7.3, Anda dapat menggunakan:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
Hal lain yang dapat Anda coba untuk memeriksa cookie, adalah mengaktifkan bendera di bawah ini, yang - dengan kata-kata mereka sendiri - "akan menambahkan pesan peringatan konsol untuk setiap cookie yang berpotensi dipengaruhi oleh perubahan ini":
chrome://flags/#cookie-deprecation-messages
Lihat seluruh kode di: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md , mereka juga memiliki kode tersebut
same-site-cookies
.sumber
Ketika fitur baru datang,
SameSite=None
cookie juga harus ditandai sebagaiSecure
atau mereka akan ditolak.Orang dapat menemukan informasi lebih lanjut tentang perubahan pada pembaruan kromium dan pada posting blog ini
Catatan : tidak cukup terkait langsung dengan pertanyaan, tetapi mungkin bermanfaat bagi orang lain yang mendarat di sini karena ini merupakan keprihatinan saya pertama kali selama pengembangan situs web saya:
jika Anda melihat peringatan dari pertanyaan yang mencantumkan beberapa situs pihak ke-3 (dalam kasus saya ini adalah google.com, ya) - itu berarti mereka perlu memperbaikinya dan itu tidak ada hubungannya dengan situs Anda. Tentu saja kecuali peringatan itu menyebutkan situs Anda, dalam hal ini penambahan
Secure
harus memperbaikinya.sumber
sumber
Saya akhirnya memperbaiki instalasi Ubuntu 18.04 / Apache 2.4.29 / PHP 7.2 kami untuk Chrome 80 dengan menginstal mod_headers:
Menambahkan arahan berikut ke konfigurasi Apache VirtualHost kami:
Dan me-restart Apache:
Dalam meninjau dokumen ( http://www.balkangreenfoundation.org/manual/en/mod/mod_headers.html ) saya perhatikan bahwa kondisi "selalu" memiliki situasi tertentu di mana ia tidak bekerja dari kumpulan header tanggapan yang sama. Jadi tidak menggunakan "selalu" adalah apa yang bekerja untuk saya dengan PHP tetapi dokumen menyarankan bahwa jika Anda ingin menutupi semua pangkalan Anda, Anda bisa menambahkan arahan baik dengan dan tanpa "selalu". Saya belum mengujinya.
sumber