Istruzioni per il test degli insiemi proprietari

L'ultima versione di First-Party Sets è pronta per i test dei flag di funzionalità per gli sviluppatori a partire da Chrome 108. Stiamo lavorando attivamente ai set proprietari con l'obiettivo di procedere verso il rilascio, pertanto prenderemo in considerazione i feedback per questa fase di test degli sviluppatori fino al rilascio di Chrome 111 all'inizio di marzo (7 marzo 2023).

I feedback dell'ecosistema hanno evidenziato casi d'uso cross-site che saranno interessati quando i cookie di terze parti non saranno più supportati in Chrome. La proposta relativa ai set proprietari esamina e risolve una classe di casi d'uso cross-site in cui i siti interdipendenti condividono una relazione che può essere espressa al browser in modo che il browser possa intraprendere l'azione appropriata per conto dell'utente e/o presentare efficacemente queste informazioni all'utente.

La proposta aggiornata utilizza due API (l'API Storage Access e una nuova API provvisoriamente denominata requestStorageAccessForOrigin) per fornire ai siti un metodo attivo per richiedere l'accesso tra siti per i propri cookie all'interno di un insieme proprietario. Le istruzioni riportate di seguito dovrebbero consentirti di testare e convalidare gli insiemi che potresti voler creare per i tuoi siti e i punti giusti per chiamare le due diverse API.

Panoramica degli insiemi proprietari

Gli insiemi proprietari (FPS) sono un meccanismo della piattaforma web che consente agli sviluppatori di dichiarare le relazioni tra i siti, in modo che i browser possano utilizzare queste informazioni per attivare un accesso limitato ai cookie cross-site per scopi specifici rivolti agli utenti. Chrome utilizzerà queste relazioni dichiarate per decidere quando consentire o negare a un sito l'accesso ai suoi cookie in un contesto di terze parti.

A livello generale, un insieme proprietario è una raccolta di domini per i quali esiste un singolo "insieme principale" e potenzialmente più "membri dell'insieme". Solo gli autori del sito possono inviare i propri domini a un insieme e dovranno dichiarare la relazione tra ogni "elemento dell'insieme" e il relativo "insieme principale". I membri dell'insieme possono includere una serie di diversi tipi di domini con sottoinsiemi basati sui casi d'uso.

Per facilitare la gestione di ogni sottoinsieme da parte del browser in base alle implicazioni sulla privacy, proponiamo di utilizzare l'API Storage Access (SAA) e la richiesta requestStorageAccessForOrigin per abilitare l'accesso ai cookie all'interno di un FPS.

Con l'ASA, i siti possono richiedere attivamente l'accesso ai cookie cross-site. Chrome concederà automaticamente la richiesta se il sito che la effettua e il sito web di primo livello si trovano nello stesso FPS. Consulta la documentazione dell'API Storage Access (SAA) per informazioni su come le chiamate all'API SAA vengono elaborate da altri browser.

Al momento, SAA richiede che il documento ottenga l'attivazione dell'utente prima di chiamare i metodi dell'API.

Ciò può rendere difficile l'adozione di FPS per i siti di primo livello che utilizzano immagini cross-site o tag script che richiedono cookie. Per risolvere alcune di queste sfide, abbiamo proposto una nuova API, requestStorageAccessForOrigin, per semplificare l'adozione di questa modifica da parte degli sviluppatori. Questa API è disponibile anche per i test.

Imposta invio

L'elenco canonico FPS sarà un elenco visibile pubblicamente in un formato file JSON ospitato in un nuovo repository GitHub FPS, che fungerà da fonte attendibile per tutti gli insiemi. Chrome utilizzerà questo file per applicarlo al proprio comportamento.

Per scoprire di più sulla procedura proposta e sui requisiti per l'invio dei set, consulta le linee guida per l'invio. Puoi anche provare a inviare un set per testare i vari controlli tecnici che convalideranno i contenuti inviati. Tieni presente che tutti i contenuti inviati verranno approvati prima che la funzionalità FPS sia disponibile nelle versioni stabili di Chrome.

Poiché la procedura di invio dei set è ancora in fase di sviluppo attivo, per i test locali puoi creare set solo sulla riga di comando e trasmetterli direttamente al browser. Per i test locali, non è necessario inviare un set al repository GitHub per eseguire test con i flag di funzionalità.

Come eseguire il test localmente

Prerequisiti

Per testare le FPS localmente, utilizza Chrome 108 o versioni successive avviate dalla riga di comando.

Per provare in anteprima le funzionalità di Chrome prima che vengano rilasciate, scarica la versione beta o Canary di Chrome.

Esempio

google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \

Scopri di più su come eseguire Chromium con i flag.

Passaggi

Per attivare la funzionalità FPS localmente, devi utilizzare l'opzione --enable-features di Chrome con un elenco di flag separati da virgola descritti in questa sezione e dichiarare un insieme di siti correlati come oggetto JSON da passare a --use-first-party-set.

Attiva FPS

FirstPartySets attiva il frame rate in Chrome.

FirstPartySets

Abilita l'API Storage Access

StorageAccessAPI

Attiva l'API Storage Access (SAA) in Chrome, che consente agli iframe incorporati di utilizzare requestStorageAccess() per richiedere l'accesso ai cookie in un contesto cross-site, anche quando i cookie di terze parti sono bloccati dal browser.

Tieni presente che, quando viene chiamato, requestStorageAccess() richiede un gesto dell'utente per poter essere risolto. Le versioni future di Chrome potrebbero imporre insiemi diversi di requisiti, poiché la specifica SAA è ancora in evoluzione. Consulta questa pagina per un elenco dei miglioramenti pianificati all'implementazione del SAA in Chrome.

StorageAccessAPIForOriginExtension

Consente ai siti di primo livello di utilizzare requestStorageAccessForOrigin() per richiedere l'accesso allo spazio di archiviazione per conto di origini specifiche. Questa opzione è utile per i siti di primo livello che utilizzano immagini o tag script cross-site che richiedono cookie e risolve alcune delle sfide relative all'adozione dell'ASA.

Dichiarare un set localmente

Un insieme proprietario è una raccolta di domini per i quali esiste un singolo "set principale" e potenzialmente più "set membri". I membri dell'insieme possono includere una serie di diversi tipi di domini con sottoinsiemi basati sui casi d'uso.

Crea un oggetto JSON contenente gli URL che fanno parte di un insieme e passalo a --use-first-party-set.

Nell'esempio seguente, primary elenca il dominio principale e associatedSites elenca i domini che soddisfano i requisiti del sottoinsieme associato.

{
     "primary": "https://primary.com",
    "associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}

Esempio:

--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"

Per i test locali, puoi creare set solo sulla riga di comando e trasmetterli direttamente al browser. Per i test locali non verrà eseguita la convalida degli insiemi, ma quando FPS verrà rilasciato in versioni stabili, tutti gli insiemi dovranno essere inviati al repository GitHub di FPS ed essere soggetti ai criteri di convalida.

Attivare l'interfaccia utente FPS

PageInfoCookiesSubpage

Consente di mostrare i fotogrammi al secondo nella sezione PageInfo accessibile dalla barra degli URL.

PrivacySandboxFirstPartySetsUI

Attiva l'opzione dell'interfaccia utente FPS "Consenti ai siti correlati di vedere le tue attività nel gruppo" nelle impostazioni di Chrome, in Privacy e sicurezza → Cookie e altri dati del sito (chrome://settings/cookies).

Verificare che i cookie di terze parti siano bloccati

  1. Nelle impostazioni di Chrome, vai a Privacy e sicurezza → Cookie e altri dati dei siti o a chrome://settings/cookies.
  2. Nella sezione Impostazioni generali, assicurati che l'opzione "Blocca cookie di terze parti" sia attivata.
  3. Verifica che sia attiva anche l'opzione secondaria "Consenti ai siti correlati di vedere le tue attività nel gruppo".

Considerazioni sulla sicurezza

Poiché l'API Accesso allo spazio di archiviazione consente ai siti web di riottenere l'accesso ai cookie di terze parti in alcuni casi, potrebbe lasciare le applicazioni web vulnerabili ad attacchi cross-site e fughe di informazioni. I siti che si basano su cookie in contesti cross-site devono essere consapevoli dei rischi di CSRF e di altri attacchi.

Miglioramenti pianificati

Per migliorare questa situazione, le release future di Chrome richiederanno controlli di sicurezza aggiuntivi, con l'obiettivo di garantire l'attivazione esplicita degli elementi incorporati. I miglioramenti proposti prevedono: concedere l'accesso solo su base frame, richiedere CORS per le richieste con credenziali e mantenere l'ambito di accesso solo all'origine. Scopri di più nella recente analisi della sicurezza.

Consulta l'elenco dei miglioramenti pianificati all'implementazione del SAA in Chrome.

Tieni presente che Chrome invia cookie contrassegnati come SameSite=None solo nei contesti incorporati cross-site, dove l'API Accesso allo spazio di archiviazione è pertinente. Tuttavia, finché non tutti i browser avranno ritirato l'accesso predefinito a questi cookie, non si può fare alcuna supposizione su dove il cookie potrebbe essere utilizzato. Non è sicuro presumere che l'accesso sia consentito solo all'interno di un FPS e i siti devono continuare a utilizzare le best practice di sicurezza standard.

Coinvolgere e condividere feedback

I test locali sono un'opportunità per provare il meccanismo dell'API Accesso allo spazio di archiviazione per abilitare le FPS e condividere feedback o eventuali problemi riscontrati. Inoltre, testare la procedura di invio dei set su GitHub è un'opportunità per condividere la tua esperienza con la procedura e i passaggi di convalida. Per interagire e condividere feedback sulla proposta aggiornata: