2012-01-02 2 views
10

Sto cercando cose che sento regolarmente che quando si esegue una webapp in JSF 2.0 si è già protetti da crossite - scripting e - richiesta di contraffazione. Il seguente estratto da un SO post conferma:Come JSF 2.0 impedisce CSRF

In JSF 2.0 questo è stato migliorato utilizzando una lunga e forte valore generato automaticamente invece di un valore di sequenza piuttosto prevedibile e rendendo così un robusto prevenzione CSRF.

Qualcuno può fornire ulteriori dettagli su questo? In che modo questo valore autogenerato impedisce CSRF? Grazie!

+0

https://www.packtpub.com/mapt/book/application_development/9781782176466/9/ch09lvl1sec84/jsf-security-notes –

risposta

11

In che modo questo valore autogenerato impedisce CSRF?

Perché non può essere indovinato. Quindi l'attaccante non può indicarlo in un campo nascosto in una forma del sito Web di attacco (a meno che il sito di destinazione non abbia un buco XSS e quindi il valore può essere ottenuto semplicemente direttamente tramite mezzi XSS). Se il valore non è valido per JSF, il modulo di invio dal sito Web di attacco semplicemente non verrà elaborato, ma genererà invece un ViewExpiredException. Si noti che l'autore dell'attacco dovrebbe comunque ottenere l'ID di sessione in modo che possa essere ritrasferito tramite l'attributo URL jsessionid, quindi la protezione CSRF "debole" originariamente richiederebbe ancora un buco XSS per ottenere l'ID sessione.

Dopo tutto, ho l'impressione che tu non capisca affatto cosa sia CSRF; la risposta è piuttosto auto-esplicativa se capisci cos'è CSRF. In tal caso, si prega di verificare la seguente domanda: Am I under risk of CSRF attacks in a POST form that doesn't require the user to be logged in?

5

Una cosa da ricordare è che la protezione CSRF in JSF 2.0 è implicita ed è valida solo per le richieste POST.

In JSF 2.2 ci sarà un supporto più esplicito per questo. Ho spiegato brevemente questo qui: http://arjan-tijms.omnifaces.org/p/jsf-22.html

+0

Così per le richieste GET ?? Cosa si può fare per JSF 2.0? – oikonomopo