La stessa politica di origine per il web è utile solo a causa dei cookie?

3

Esiste una stessa politica di origine nel browser per garantire che ad es. cattivo sito non leggerà i tuoi dati da Facebook. Ma sembra che l'unico problema che cerca di risolvere è che i cookie vengono automaticamente inviati con la richiesta che autentica l'utente (+ forse alcuni altri schemi di autenticazione come base o forse certificato).

Quindi la mia domanda è: avremmo davvero bisogno di questa politica se il browser non inviasse automaticamente tutti i dettagli dell'autenticazione HTTP e i cookie con questa richiesta?

Forse il modo migliore è quello di consentire l'origine incrociata per impostazione predefinita, ma assicurarsi che queste informazioni (cookie, http auth) non vengano trasferite. In ogni caso, ora possiamo produrre API basate su token, ad es. e così via se è necessaria una richiesta cross-site. E un chiamante di parti 3d dovrebbe ottenere un token allo stesso modo in modo da non richiedere CORS.

    
posta Ilya Chernomordik 02.02.2016 - 15:36
fonte

1 risposta

2

No, la stessa politica di origine protegge anche da:

  • Manipolazione di domini incrociati nel DOM (ad esempio una pagina che manipola un'altra pagina da un'altra origine caricata in un IFrame).
  • La risposta delle richieste AJAX viene letta quando le origini non corrispondono.
  • Immagini caricate da altre origini da essere lette in una tela HTML5.

So my question is: would we really need this policy if the browser would not send all the http auth details and cookies with this request automatically?

Sì, ne abbiamo bisogno per i motivi di cui sopra.

È potrebbe funzionare in questo modo, ma non ora a causa di ragioni di compatibilità con le versioni precedenti. Si rompono troppe cose cambiando improvvisamente uno standard su cui si basa la maggior parte della rete mondiale.

In ogni caso, cosa succederebbe nel caso in cui l'intera finestra venisse reindirizzata? per esempio. se esiste una funzione sensibile che può essere sfruttata tramite CSRF utilizzando il metodo GET, l'attaccante potrebbe semplicemente reindirizzare l'intera pagina a https://example.com/delete_users per poter eseguire l'attacco.

In che modo il browser dovrebbe sapere di non inviare cookie in quella situazione? Sembra che l'unica cosa che otterresti sia rendere le regole più complicate e la complessità è il nemico della sicurezza.

    
risposta data 03.02.2016 - 13:04
fonte