protezione del percorso dei cookie all'interno dello stesso dominio

13

La risposta a questa domanda su come i cookie sono potenzialmente vulnerabili tra sottodomini ha suscitato la mia curiosità.

Per quanto ne so, se un cookie è impostato su un sotto-percorso dello stesso dominio ( www.example.com/dogs ), allora non è accessibile a nessun altro percorso, a meno che non si tratti di una sottocartella del percorso. Ad esempio, né www.example.com/catswww.example.com/ dovrebbero avere accesso a tali cookie, ma www.example.com/dogs/labrador lo farebbe.

Leggendo ulteriormente , vedo che è possibile ottenere i cookie da percorsi diversi:

It is important to note that the path restriction does not protect against unauthorized reading of the cookie from a different path. It can easily be bypassed with simple DOM (for example by creating a hidden iframe element with the path of the cookie, then accessing this iframe's contentDocument.cookie property). The only way to protect cookie access is by using a different domain or subdomain, due to the same origin policy.

Se è così, allora quale sicurezza (o anche funzionalità) fornisce il percorso del cookie? E se può essere letto usando un iframe, perché non è accessibile direttamente in javascript? Questa "restrizione" in realtà fornisce un falso senso di sicurezza?

    
posta Yoav Aner 05.03.2012 - 19:56
fonte

1 risposta

21

Il percorso del cookie non fornisce alcuna sicurezza (nella maggior parte delle situazioni del mondo reale).

È importante capire che la specifica sui cookie è una tecnologia antica. Risale ai primi giorni del web. Il modello di sicurezza del web si è evoluto da allora e si è sviluppato con maggiore attenzione. Il modello di sicurezza per i cookie non si è evoluto in modo corrispondente.

Come ulteriore esempio di mancata corrispondenza dell'impedenza tra il modello di sicurezza del Web e i cookie, la politica della stessa origine tratta www.example.com:80 come origine diversa da www.example.com:81 , ma sono considerati identici ai fini dei cookie. Puoi trovare ulteriori discussioni su problemi di sicurezza con i cookie da Michal Zalewski.

I cookie possono essere letti da Javascript. Mentre il browser può prendere in considerazione il percorso quando Javascript cerca di leggere i cookie, questa non è una funzione di sicurezza: il percorso non è un limite di sicurezza, quindi Javascript pericoloso su una pagina può ancora leggere cookie per altri percorsi (ad esempio, aprendo un iframe invisibile con il percorso corretto, inserendo Javascript dannoso in esso e quindi afferrando il cookie). L'unico limite di sicurezza effettivo è alla granularità di un'origine. Di conseguenza, la linea di fondo dal punto di vista della sicurezza è: Javascript pericoloso su www.example.com/dogs può leggere un cookie il cui percorso è www.example.com/cats .

In pratica, gli sviluppatori in genere evitano questi casi angolari che sono rimasti indietro rispetto ai giorni precedenti, o almeno evitano di fare affidamento su di essi per fornire ulteriore sicurezza. Ad esempio, gli sviluppatori web non dovrebbero basarsi sul percorso dei cookie per fornire sicurezza (nel migliore dei casi riduce il numero di cookie inviati, che potrebbero essere utilizzati per ridurre la larghezza di banda in alcune situazioni). Come altro esempio, i siti in questi giorni di solito evitano di pubblicare contenuti da numeri di porta non standard, poiché quella situazione è un altro caso d'angolo che espone la semantica inaspettata.

A questo punto, il percorso del cookie è in gran parte un residuo rudimentale dei giorni precedenti. Non ha più molto scopo, per quanto ne so, e se il percorso dei cookie non fosse mai stato introdotto, oggi probabilmente non lo noteresti mai. Ma i browser devono ancora supportarlo, per ragioni di compatibilità con le versioni precedenti. E così via, sul web. È meglio pensare al web non come un artefatto progettato con cura, ma come qualcosa che si è evoluto nel tempo - e come risultato, ha accumulato gunk ormai inutile, come la nostra appendice.

    
risposta data 05.03.2012 - 21:07
fonte

Leggi altre domande sui tag