Peringatan SameSite Chrome 77

168

Sejak pembaruan terakhir, saya mengalami kesalahan dengan cookie, terkait dengan atribut SameSite.

Cookie berasal dari pengembang pihak ketiga (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts, dll.)

Kesalahan di konsol Chrome adalah seperti ini.

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
(index):1 A cookie associated with a cross-site resource at http://jquery.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://fontawesome.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://gstatic.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

Apakah ada yang perlu saya lakukan di mesin atau server lokal saya atau hanya beberapa fitur yang harus mereka terapkan dalam rilis perpustakaan mereka di masa depan?

Peiblox
sumber
9
tidak ada hubungannya dengan kode Anda. itu sesuatu yang harus didukung server web mereka.
Daniel A. White
Saya memiliki masalah yang sama, apakah ini berarti kami tidak dapat menggunakan situs web pihak ketiga dalam kode kami?
Love2Code
1
Anda dapat menggunakan perpustakaan tanpa masalah. Ini hanya peringatan konsol akan melempar sampai mereka mengimplementasikannya di server mereka seperti @ DanielA.White katakan sebelumnya.
peiblox
9
Dan apa yang sebenarnya terjadi jika pihak ke-3 tidak memperbaiki cookie mereka pada tanggal A future release of Chrome will only deliver ... - apakah situs saya akan rusak? Sepertinya tanggal yang akan datang adalah 02/04/2020 - tidak terlalu jauh.
JK.
1
Seperti disebutkan oleh @ DanielA.White, ini perlu diperbaiki pada kode pihak ketiga, lihat jawaban ini untuk konteks yang lebih.
Hooman Bahreini

Jawaban:

142

Peringatan konsol ini bukan kesalahan atau masalah sebenarnya - Chrome hanya menyebarkan berita tentang standar baru ini untuk meningkatkan adopsi pengembang.

Itu tidak ada hubungannya dengan kode Anda. Ini adalah sesuatu yang harus didukung server web mereka .

Tanggal rilis untuk perbaikan adalah 4 Februari 2020 per: https://www.chromium.org/updates/same-site

Februari, 2020: Peluncuran penegakan untuk Chrome 80 Stable: SameSite-oleh-default dan SameSite = Tidak ada yang memerlukan-Perilaku yang aman akan mulai diluncurkan ke Chrome 80 Stable untuk populasi terbatas awal mulai minggu 17 Februari 2020 , tidak termasuk Liburan Hari Presiden AS pada hari Senin. Kami akan memonitor dan mengevaluasi dampak ekosistem dari fase terbatas awal ini melalui peningkatan yang bertahap.

Untuk jadwal rilis Chrome lengkap, lihat di sini .

Saya memecahkan masalah yang sama dengan menambahkan header tanggapan

response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");

SameSitemencegah browser mengirim cookie bersama dengan permintaan lintas situs. Tujuan utamanya adalah mengurangi risiko kebocoran informasi lintas-asal. Ini juga menyediakan beberapa perlindungan terhadap serangan pemalsuan permintaan lintas situs. Nilai yang mungkin untuk flag adalah Lax atau Strict.

Cookie SameSite dijelaskan di sini

Silakan merujuk ini sebelum menerapkan opsi apa pun.

Semoga ini bisa membantu Anda.

Rahul Mahadik
sumber
39
Sudahkah Anda melakukan riset tentang bagaimana hal ini dapat ditangani ketika menarik skrip pihak ketiga yang mengatur cookie (seperti Google Analytics dan Google Tag Manager)?
BRAS
26
di mana saya harus menambahkan header respons? Terima kasih.
Kris Wen
2
Jika Anda menggunakan .NET, menambahkan web.config atau menambahkan aturan URL ReWrite di IIS akan mengatasi masalah ini. Kredit diberikan untuk solusi di stackoverflow.com/questions/38954821/…
BDarley
3
Apakah ada solusi yang tidak melibatkan JavaScript?
posfan12
11
Saya harus mengatakan bahwa peringatan ramah benar-benar memicu OCD dari banyak pengembang seperti saya. Rasa frustrasi saya pada konsol yang kotor meningkat tajam ketika saya melihat YouTube, properti Google, pelaku yang menghasilkan kesalahan konsol di Google Chrome .. Inilah caranya, saya telah berbicara.
Marc
22

Jika Anda menguji pada localhost dan Anda tidak memiliki kontrol atas header respons, Anda dapat menonaktifkannya dengan flag chrome.

Kunjungi url dan nonaktifkan: chrome: // flags / # same-site-by-default-cookies SameSite berdasarkan tangkapan layar cookie default

Saya perlu menonaktifkannya karena Chrome Canary baru mulai memberlakukan aturan ini sekitar V 82.0.4078.2 dan sekarang tidak menyetel cookie ini.

Catatan: Saya hanya mengaktifkan bendera ini di Chrome Canary yang saya gunakan untuk pengembangan. Sebaiknya jangan nyalakan bendera untuk penjelajahan Chrome setiap hari dengan alasan yang sama seperti yang diperkenalkan Google.

Akan
sumber
1
Menonaktifkan bendera ini dan meluncurkan kembali kenari tidak berfungsi untuk saya, jadi saya hanya menambahkan -SameSiteke kotak "Filter" utama, yang juga saya gunakan untuk menghapus masalah sumber data yang mengganggu ini => superuser.com/questions/1523427/…
Avolition
4

Untuk menguraikan jawaban Rahul Mahadik, ini berfungsi untuk MVC5 C # .NET:

AllowSameSiteAttribute.cs

public class AllowSameSiteAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var response = filterContext.RequestContext.HttpContext.Response;

        if(response != null)
        {
            response.AddHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
            //Add more headers...
        }

        base.OnActionExecuting(filterContext);
    }
}

HomeController.cs

    [AllowSameSite] //For the whole controller
    public class UserController : Controller
    {
    }

atau

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }
Joel Wiklund
sumber
Tolong lihat kode saya. Ini juga terkait dengan kebijakan CORS oleh chrome. stackoverflow.com/questions/60556740/…
Abhay salvi
4

Diperbaiki dengan menambahkan crossorigin ke tag skrip.

Dari: https://code.jquery.com/

<script
  src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>

Atribut integritas dan crossorigin digunakan untuk memeriksa Subresource Integrity (SRI). Ini memungkinkan browser memastikan bahwa sumber daya yang dihosting di server pihak ketiga belum dirusak. Penggunaan SRI direkomendasikan sebagai praktik terbaik, setiap kali perpustakaan dimuat dari sumber pihak ketiga. Baca lebih lanjut di srihash.org

John Magnolia
sumber
srihash.org mengatakan Sayangnya kami tidak tahu domain ini.
Vlad
Di mana saya menemukan tag skrip? Apakah itu di web.config?
CarlD
1
@CarlD dari pesan kesalahan menemukan skrip mana yang menyebabkan kesalahan lalu melihat sumber html dari halaman web
John Magnolia
@ JohnMagnolia Saya baru saja melakukannya dan tidak ada yang terjadi.
CarlD