Perché i browser non limitano i cookie per scheda per combattere gli attacchi CSRF?

2

Perché i cookie sono condivisi tra le schede del browser? evita questo impedisce CSRF su siti Web di autenticazione basati su cookie? Sta condividendo il cookie tra le schede preferite per accedere facilmente al sito web da più schede senza autenticazione?

    
posta ProgramCpp 03.06.2017 - 10:32
fonte

2 risposte

1

Sì, il cookie è una "cosa del browser" ... non una "cosa da tab". È favorire l'accesso multiplo sullo stesso sito su diverse schede, ciò che nella maggior parte dei casi è un vantaggio.

Sì, hai ragione, nel caso ipotetico di avere "cookie di tabulazione" gli attacchi CSRF non hanno senso perché, come immagino tu sappia molto bene, gli attacchi di Cross Site Request Forgery si basano su:

  • Un utente ha una sessione già esistente sul sito web A.
  • Quindi, cliccando su un link malevolo, magari sul sito B o in una e-mail o comunque, viene fatta un'altra richiesta (di solito viene fatta in un'altra scheda) lanciando una richiesta falsificata cercando di fare qualcosa sul sito web Un "abuso" del hai già impostato una sessione o un cookie esistente sul browser della vittima per eseguire qualsiasi "azione malvagia".

Se vuoi una sessione separata su un browser, ci sono modi per ottenerlo come usare la navigazione privata. Questo separa la sessione / i cookie dalle altre sessioni. Questo perché è come "altra istanza di browser", ma tra le schede della navigazione privata condividerai sessione / cookie nello stesso modo.

Spero che ti aiuti.

    
risposta data 03.06.2017 - 12:05
fonte
1

Why are the cookies shared between browser tabs?

Perché spezzerebbe l'intero scopo dei cookie.

Un cookie ha tre componenti:

  1. Un dominio
  2. Alcuni dati
  3. Scadenza

Ogni volta che il browser esegue una richiesta http, controlla il database dei cookie (locale) per tutti i cookie che hanno un dominio corrispondente a quello della richiesta; se ne trova uno, li invia insieme al server.

Questo meccanismo è stato creato per fornire persistenza per l'http altrimenti stateless. Senza i cookie, dovremmo fornire il nostro nome utente e password per ogni singola richiesta a un sito autenticato.

Se i cookie venissero universalmente modificati per finestra, molte cose diventerebbero fastidiose. Non solo avresti bisogno di accedere ad Amazon di nuovo ogni volta che hai aperto il browser, ma avresti bisogno di accedere ogni volta che lo hai aperto in una nuova scheda - sia perché hai chiuso il precedente quando hai finito lo shopping, o perché stai aprendo i risultati in schede per confrontarli.

does avoiding this prevent CSRF on cookie based authentication web sites?

Combatterebbe CSRF, sì. Non sarebbe infallibile, dal momento che conserveresti i cookie di altri siti in quella scheda.

Se hai mai provato ad applicare questa norma a un utente, troverà immediatamente una soluzione alternativa e, di conseguenza, avrà come risultato un sistema meno sicuro.

Se vuoi scrivere un plugin per il browser per farlo da solo ... vai avanti, ma sospetto che troverai l'esperienza utente colpita troppo in fretta.

    
risposta data 03.06.2017 - 18:05
fonte

Leggi altre domande sui tag