Può la pubblicità leggere i cookie del sito Web in cui si trova?

39

So che molti annunci possono memorizzare cookie di terze parti, ma che ne dici di leggere i cookie? In tal caso, cosa impedisce loro di leggere l'id della sessione per eseguire il dirottamento di sessione?

    
posta user3500869 03.01.2018 - 00:00
fonte

2 risposte

56

Qualsiasi script incluso in una pagina può leggere tutti i cookie per cui l'attributo httpOnly non è impostato. Le restrizioni di accesso per gli script non sono determinate in base al dominio da cui è stato caricato lo script ma solo in quale pagina è stato caricato. Ciò significa che tutti gli script caricati in una pagina hanno lo stesso accesso e controllo su questa pagina, indipendentemente dall'origine dello script. Per quanto riguarda i cookie, ciò significa che è necessario proteggere i cookie sensibili come gli ID di sessione con httpOnly se sono inclusi script di terze parti che sono al di fuori del proprio controllo e si fidano della propria pagina.

Tuttavia includere tali script in una pagina che funziona con dati sensibili è comunque una cattiva idea, dal momento che tali script possono non solo leggere cookie (tranne httpOnly) ma anche estrarre informazioni da moduli (come credenziali di accesso) o modificare la logica dell'applicazione lato client . Vedi anche Dovrei essere preoccupato del tracking domini su un sito web bancario? .

Si noti che queste istruzioni si applicano solo allo script di terze parti direttamente incluso nella pagina principale. Se lo script è invece solo all'interno di una iframe di terze parti all'interno della pagina principale, non può né leggere i cookie nella pagina principale né accedere o modificare il DOM su di esso.

    
risposta data 03.01.2018 - 00:15
fonte
19

Ogni cookie appartiene a un dominio (un'origine). Ogni browser moderno implementa una politica di origine identica che impedisce a uno script di accedere ai cookie di un'origine diversa da quella che esegue lo script (con alcune soluzioni alternative per i sottodomini).

If so, what stops them from reading the session id to perform session hijacking?

Se somesite.example implementa uno script pubblicitario in questo modo ...

<script src="https://rogueadvertisement.example/script.js"></script>

...nullaimpediscealloscriptdiaccedereemodificareuncookiesusomesite.example,amenocheilcookienonabbiailflagHttpOnlyimpostato.(Questoflagnegal'accessoauncookiepertuttiscriptclientelorendedisponibilesolotramitel'intestazionedirispostaHTTP.)Questoperchéunoscriptincorporatovieneeseguitosull'originedelsitodiincorporamento.

Sesomesite.exampleincorporaunannuncioditerzepartiinunframe...

<iframesrc="https://rogueadvertisement.example/ad.html"></iframe>

... il documento incorporato ha la propria origine e gli script in esecuzione all'interno del frame non possono accedere ai cookie che appartengono al dominio del documento principale.

Inoltre, ci sono alcune manopole per rendere l'incorporazione di fonti potenzialmente non sicure ancora più sicure, come l'HTML5 attributo sandbox . Usandolo come attributo vuoto ...

<iframe sandbox src="https://rogueadvertisement.example/ad.html"></iframe>

... applica varie restrizioni aggiuntive, come il rifiuto di qualsiasi script eseguito all'interno del frame.

    
risposta data 03.01.2018 - 03:48
fonte

Leggi altre domande sui tag