Mi manca sicuramente qualcosa nell'immagine di come gli attacchi e le protezioni CSRF stanno funzionando.
La mia comprensione in uno scenario di invio di moduli è che la protezione si basa su un token imprevedibile, in qualche modo si presume che l'attaccante non possa ottenere il token, perché?
Se l'autore dell'attacco è abbastanza buono da farmi inviare un modulo (come menzionato da OWASP ) cosa gli impedirebbe di ottenere il token prima di inviarlo?
C'è un limite alla dimensione / sintassi javascript che può essere iniettata o è solo l'ipotesi che sto usando un browser moderno con la politica Same-Origin, cosa non vedo?
modifica
Il mio dubbio, se sono un utente malintenzionato e posso inserire javascript nel modulo utente, perché non riesco a ottenere (usando ajax) il modulo con il token segreto, estrarre e iniettare il token nel modulo da inviare ?
modifica 2
Perdonami per essere pedante ma sto cercando di usare la protezione CSRF su un server php e potrei configurarlo in modo errato se non capisco.
Riguardo allo scenario POST di OWASP di esempio con invia onload , evil.com
è il sito che l'utente attaccato sta visitando giusto? Attiva un post inviato a targetSite.com
, l'onload javasript nell'esempio è semplice ma potrebbe essere stato complesso utilizzando un get
del modulo con il token segreto prima di inviarlo, giusto?
Se questo è il caso, è solo la Same-Origin-Policy che protegge l'utente attaccato?