In che modo la politica sui cookie SameSite di Chrome influisce sulla mia integrazione?

A seguito dell'aggiornamento di Google Chrome sulla loro politica sui cookie SameSite, alcuni commercianti hanno riscontrato problemi durante l'elaborazione dei pagamenti con reindirizzamento 3DS nel browser Chrome a causa della configurazione specifica della loro integrazione. I commercianti hanno segnalato problemi con:

  • reindirizzamenti 3DS1
  • reindirizzamenti 3DS2

Informazioni sulla politica sui cookie SameSite di Chrome

Nella versione aggiornata di Chrome 80 e versioni successive, Google Chrome sta applicando un sistema di classificazione dei cookie sicuro per impostazione predefinita. Ciò significa che i cookie senza un attributo SameSite non saranno inclusi in una callback di reindirizzamento POST. Ai cookie che non hanno dichiarato un valore SameSite verrà assegnato il valore predefinito 'SameSite=Lax'. Solo i cookie impostati come 'SameSite=None; Secure' saranno disponibili in contesti di terze parti, purché siano accessibili da connessioni sicure. 

Come faccio a sapere se questo influisce sulla mia integrazione?

Se questo influisce sulla tua integrazione, dipende dal fatto che tu stia utilizzando i cookie per memorizzare le informazioni di pagamento durante l'elaborazione di 3DS1 o per reindirizzare le autorizzazioni 3DS2. Un caso d'uso comune che vediamo è, ad esempio, la memorizzazione dell'attributo paymentData nei cookie.

Come risolvere il problema?

Ti consigliamo di verificare la tua integrazione per assicurarti di essere in grado di gestire le richieste di reindirizzamento POST sul browser Chrome aggiornato, ma assicurati anche che possano essere gestite su browser meno recenti. Tieni presente che il campo SameSite non è ancora ampiamente supportato nei browser meno recenti così come in Safari e Firefox.

Come implementare SameSite (da web.dev/samesite-cookie-recipes)

Per i cookie necessari in un contesto di terze parti, dovrai assicurarti che questi siano contrassegnati come SameSite=None; Secure. Tieni presente che sono necessari entrambi gli attributi insieme. Se specifichi solo None senza Secure, il cookie verrà rifiutato. Tuttavia, sono presenti alcune differenze reciprocamente incompatibili nelle implementazioni dei browser, quindi potrebbe essere necessario utilizzare alcune delle strategie di mitigazione descritte nell'articolo che segue, Gestione dei client incompatibili.


Set-Cookie: third_party_var=value; SameSite=None; Secure


Gestione di client incompatibili (da web.dev/samesite-cookie-recipes)

Poiché queste modifiche per includere None e aggiornare il comportamento predefinito sono ancora relativamente nuove, ci sono incoerenze tra i browser in merito al modo in cui queste modifiche vengono gestite. Puoi fare riferimento alla pagina degli aggiornamenti su chromium.org per i problemi attualmente noti, tuttavia non è possibile dire se questa pagina è esaustiva. Anche se non è la soluzione ideale, è possibile utilizzare metodi alternativi durante questa fase transitoria. La regola generale però è quella di trattare i client incompatibili come caso speciale. Non creare un'eccezione per i browser che implementano le regole più recenti.

La prima opzione è quella di impostare sia i cookie nuovi che quelli vecchi:


Set-cookie: 3pcookie=value; SameSite=None; Secure
Set-cookie: 3pcookie-legacy=value; Secure

I browser che implementano il nuovo comportamento imposteranno il cookie con il valore SameSite, mentre altri browser potrebbero ignorarlo o impostarlo in modo errato. Tuttavia, quegli stessi browser imposteranno il cookie 3pcookie-legacy. Quando elabora i cookie inclusi, il sito deve prima verificare la presenza del nuovo cookie e, se non viene trovato, tornare al cookie precedente.


Esempi in lingue differenti (da github.com/GoogleChromeLabs/samesite-examples)

Altri link utili

I seguenti documenti Chrome ti aiuteranno nel caso in cui siano necessarie modifiche all'interno della tua integrazione: SameSite cookie recipesSameSite 3DSv1.0 examples with sequence diagramsWorking around incompatible clients

Se stai tentando di testare il tuo nuovo flusso 3DS e non riesci a verificare se la tua soluzione funziona, abilita i flag sperimentali (chrome: //flags) e imposta tutte le funzioni denominate 'SiteSite' su 'Enabled' . Per ulteriori informazioni su come eseguire il test sulle integrazioni che utilizzano i cookie SameSite di Crome, fai riferimento ai suggerimenti per testare ed effettuare il debug dei cookie SameSite.

Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 9 su 12