Stessa politica di origine e token CSRF

0

Se crediamo che i browser soddisfino la stessa politica di origine senza bug, avremmo ancora bisogno di token CSRF?

Supponendo che il server non abbia CORS abilitato: Per quanto ne so non siamo autorizzati a fare richieste POST di cross-origine, quindi perché c'è un token CSRF?

Se il server ha abilitato CORS: (presupponendo sia GET che POST, perché non vedo il punto di CORSing POST ma non GET)
Potremmo ottenere la pagina, leggere il token e POST una richiesta corretta.

    
posta EralpB 20.03.2017 - 09:20
fonte

1 risposta

3

If we trust browsers that they satisfy Same Origin Policy without bugs, would we still need CSRF-tokens?

Sì, lo faremo. A causa del fatto che ci sono altre richieste che non rientrano in SOP come il modulo submit, loading scripts..etc

Assuming server doesn't have CORS enabled: As far as I know we are not allowed to do POST requests cross-origin, then why is there a CSRF token?

Anche quando CORS è disabilitato, il browser completerà le richieste POST XHR, l'utente malintenzionato non sarà in grado di accedere alla risposta, ma la richiesta verrà completata e a lui sarà eseguito con successo l'attacco CSRF. Questo, tuttavia, fallirà in caso di PUT , PATCH e DELETE richieste poiché il browser prima emetterà una richiesta di OPTIONS all'endpoint della richiesta per verificare la richiesta.

If server has CORS enabled: (assuming both GET and POST, because I don't see the point of CORSing POST but not GET) We could GET the page, read the token and POST a correct request.

Questa sarebbe una vulnerabilità con il server stesso. CORS non dovrebbe essere aperto a tutti gli host remoti, solo quelli che possiedi (fiducia).

    
risposta data 20.03.2017 - 09:40
fonte

Leggi altre domande sui tag