Avviso SameSite Chrome 77


168

Dall'ultimo aggiornamento, ho riscontrato un errore con i cookie, correlato all'attributo SameSite.

I cookie provengono da sviluppatori di terze parti (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts, ecc.)

Gli errori nella console di Chrome sono così.

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.

C'è qualcosa che devo fare nel mio computer o server locale o sono solo alcune funzionalità che dovrebbero implementare nelle versioni future delle loro librerie?


9
niente a che fare con il tuo codice. è qualcosa che i loro server web dovranno supportare.
Daniel A. White,

Ho lo stesso problema, questo significa che non possiamo usare siti Web di terze parti nel nostro codice?
Love2Code

1
È possibile utilizzare le librerie senza alcun problema. È solo un avvertimento che la console emetterà fino a quando non lo implementeranno nei loro server come @ DanielA.White ha detto prima.
Peiblox,

9
E cosa succede esattamente se la terza parte non corregge i cookie entro la data in cui A future release of Chrome will only deliver ... - il mio sito si romperà? Sembra che quella data futura sia il 02/04/2020 - non troppo lontano.
JK.

1
Come accennato da @ DanielA.White, questo deve essere risolto con il codice di terze parti, vedi questa risposta per più contesto.
Hooman Bahreini,

Risposte:


142

Questo avviso della console non è un errore o un problema reale: Chrome sta semplicemente diffondendo la voce su questo nuovo standard per aumentare l'adozione da parte degli sviluppatori.

Non ha nulla a che fare con il tuo codice. È qualcosa che i loro server web dovranno supportare.

La data di rilascio per una correzione è il 4 febbraio 2020 per: https://www.chromium.org/updates/same-site

Febbraio 2020: Implementazione dell'applicazione per Chrome 80 Stable: gli stessi SameSite per impostazione predefinita e SameSite = Nessuno-richiede-I comportamenti verranno avviati su Chrome 80 Stable per una popolazione iniziale limitata a partire dalla settimana del 17 febbraio 2020 , escluso il Lunedì festa del Presidente degli Stati Uniti. Monitoreremo e valuteremo da vicino l'impatto dell'ecosistema da questa fase iniziale limitata, aumentando gradualmente le implementazioni.

Per la pianificazione completa delle versioni di Chrome, vedi qui .

Ho risolto lo stesso problema aggiungendo nell'intestazione della risposta

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

SameSiteimpedisce al browser di inviare il cookie insieme a richieste tra siti. L'obiettivo principale è mitigare il rischio di perdite di informazioni tra le origini. Fornisce inoltre una certa protezione contro gli attacchi di contraffazione di richieste tra siti. I valori possibili per la bandiera sono Lax o Strict.

I cookie di SameSite sono spiegati qui

Si prega di fare riferimento questo prima di applicare qualsiasi opzione.

Spero che questo ti aiuti.


39
Hai fatto qualche ricerca su come questo potrebbe essere gestito durante l'inserimento di script di terze parti che impostano i cookie (come Google Analytics e Google Tag Manager)?
BRAS

26
dove devo aggiungere l'intestazione della risposta? Grazie.
Kris Wen,

2
Se per caso stai usando .NET, l'aggiunta del web.config o l'aggiunta di regole di riscrittura degli URL in IIS risolverà questo problema. Merito va alla soluzione a stackoverflow.com/questions/38954821/...
BDarley

3
Esiste una soluzione che non prevede JavaScript?
posfan12,

11
Devo dire che un avviso amichevole innesca davvero il DOC di molti sviluppatori come me. La mia frustrazione per la console sporca aumenta considerevolmente quando vedo YouTube, una proprietà di Google, un trasgressore che genera errori della console in Google Chrome .. È così che ho parlato.
Marc

22

Se stai testando su localhost e non hai il controllo delle intestazioni di risposta, puoi disabilitarlo con un flag chrome.

Visita l'URL e disabilitalo: chrome: // flags / # same-site-by-default-cookies Screenshot dello stesso cookie di default

Devo disabilitarlo perché Chrome Canary ha appena iniziato a far rispettare questa regola a partire da circa V 82.0.4078.2 e ora non sta impostando questi cookie.

Nota: accendo questo flag solo in Chrome Canary che utilizzo per lo sviluppo. È meglio non attivare la bandiera per la navigazione di Chrome ogni giorno per gli stessi motivi per cui Google lo sta introducendo.


1
Disabilitare questo flag e riavviare il canarino non ha funzionato per me, quindi ho appena aggiunto -SameSitealla casella principale "Filtro", che ho anche usato per rimuovere questo fastidioso problema di sourcemap => superuser.com/questions/1523427/…
Avolition

4

Per elaborare la risposta di Rahul Mahadik, questo funziona per 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
    {
    }

o

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }

Puoi per favore guardare il mio codice. È anche correlato alla politica CORS di Chrome. stackoverflow.com/questions/60556740/…
Abhay salvi

4

Risolto aggiungendo crossorigin al tag script.

Da: https://code.jquery.com/

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

Gli attributi di integrità e di origine incrociata vengono utilizzati per il controllo SRI (Subresource Integrity). Ciò consente ai browser di garantire che le risorse ospitate su server di terze parti non siano state manomesse. L'uso di SRI è raccomandato come best practice, ogni volta che le librerie vengono caricate da una fonte di terze parti. Maggiori informazioni su srihash.org


srihash.org dice Sfortunatamente non conosciamo questo dominio.
Vlad,

Dove trovo il tag dello script? È nel web.config?
CarlD,

1
@CarlD dal messaggio di errore trova quale script sta causando l'errore, quindi visualizza l'origine html della pagina Web
John Magnolia,

@JohnMagnolia L'ho appena fatto e non è successo niente.
CarlD
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.