Quali sono esattamente i rischi a cui mi sto esponendo se non utilizzo i token csrf nelle mie forme? Non sto cercando etichette semplici o nomi dei rischi, perché questi possono essere fonte di confusione. Devo capire cosa può fare esattamente un attaccante e solo in quali circostanze possono farlo, in un inglese semplice.Modulo senza token CSRF: quali sono i rischi
risposta
Una vulnerabilità di CSRF è quella che consente a un utente malintenzionato (o sito Web) di fare in modo che un utente ignaro non esegua un'azione sul proprio sito.
Alcuni esempi del mondo reale sarebbero cose come se si consentisse a un utente di eliminare un account su GET anziché su POST, qualcuno potrebbe pubblicare il seguente commento sul proprio sito (supponendo che il sito abbia modo di postare commenti o altro input, ecc.)
Ho pensato di fare un commento sul tuo sito. Dai un'occhiata a questa immagine fantastica!
< img src = 'http: //example.com/delete_my_account.php"/ >
E ora ogni volta che un loggato carichi utente che la pagina, il loro account saranno eliminati se è stato fatto sopra. POST invece di GET, qualcuno potrebbe creare un modulo e indurre gli utenti a inviarlo e lo stesso risultato sarebbe accaduto.Peso se hai usato un token CSRF, questo non sarebbe possibile
Un altro esempio potrebbe essere un sito esterno è possibile creare un modulo con i POST sul tuo sito ed eseguire un'azione indesiderata. Supponiamo che il tuo sito abbia un carrello che non utilizza token CSRF. Un sito dannoso potrebbe creare un modulo con un tton che dice "Clicca qui per registrarti", ma in realtà ordina 1000 di qualcosa dal tuo sito. Se un utente che ha effettuato l'accesso dal tuo sito visita questo sito dannoso e fa clic sul pulsante, riceverà una bella sorpresa nella posta.
Ovviamente ci sono altri casi, questi sono solo alcuni esempi. Una ricerca su Google dovrebbe mostrare un sacco di articoli e tutorial, molti dei quali probabilmente avranno altri esempi. Lo Wikipedia page ha anche alcuni esempi che potresti trovare interessanti.
L'idea principale degli esempi è che qualcuno può ingannare il tuo sito eseguendo un'azione come se provenisse da un utente, quando in realtà l'utente non era a conoscenza che stava accadendo o non voleva che accadesse. Se hai qualche tipo di azione sul tuo sito che è distruttiva (ad esempio puoi cancellare cose da un account utente, disconnettersi da un utente, ecc.) O critica (cioè trattare con denaro) dovresti probabilmente usare i token CSRF. Se il tuo sito è solo un album di foto per amici, ecc. Allora probabilmente non dovrai preoccuparti dei token CSRF (anche se è sempre utile esercitarsi quando costruisci un sito che ne ha bisogno).
A meno che non si aggiunga un token per garantire che una richiesta provenga da un modulo presentato intenzionalmente dall'utente all'utente, non si ha realmente un modo per sapere se l'utente ha intenzione di eseguire l'azione.
Pertanto, si desidera sempre utilizzare un token univoco su ogni modulo generato da POST e convalidare qualsiasi richiesta POST sul proprio sito con un token valido per l'utente corrente. Assicurati anche di espirare i token dopo un po 'di tempo in modo che non durino per sempre.
Ti consiglio di leggere questo eccellente articolo che spiega cosa è CSRF e come potresti proteggerti meglio contro di esso.
samquo l'articolo spiega che o sono stupido: $ Ha una sezione "Esempio di exploit" – Alfred
@samquo probabilmente il tuo sito non verrà attaccato da questo. Ad esempio, se Gmail non ha una protezione CSRF quando il cookie è impostato, è possibile che abbia inviato e-mail utilizzando il mio account. È tutto davvero nell'articolo. Dovresti leggerlo? – Alfred
@samquo probabilmente il tuo sito non verrà attaccato da questo. Ad esempio, se Gmail non ha una protezione CSRF quando il cookie è impostato su SET (ho effettuato l'accesso), potrebbero inviare e-mail utilizzando il mio account. È tutto davvero nell'articolo. Dovresti leggerlo? – Alfred
- 1. Quali sono i rischi delle sessioni PHP?
- 2. Sono necessari sia i token csrf che i captcha?
- 3. Ottenere il token CSRF Codeigniter senza un modulo?
- 4. Quali sono i rischi della comunicazione JSONP tra domini diversi?
- 5. Token CSRF di Django senza moduli
- 6. Quali sono i rischi concreti dell'uso di attributi HTML personalizzati?
- 7. Quali sono i rischi dell'utilizzo dei dati: image/jpeg; base64?
- 8. Quali sono i rischi nell'archiviazione dei dati in sessione?
- 9. Disabilita token CSRF sul modulo di login
- 10. Token CSRF Flask-Security
- 11. Token CSRF: come implementare correttamente?
- 12. Generazione di token CSRF
- 13. token csrf utilizzando
- 14. Rails Token CSRF - Scadono?
- 15. Token CSRF Laravel
- 16. Quali sono i rischi per la sicurezza nell'esporre il token di accesso utente di Facebook in javascript?
- 17. Quali sono i rischi dell'esposizione della chiave oauth non-così-secret? Ci sono soluzioni alternative?
- 18. Token CSRF mancante o errato
- 19. Interceptor token Struts2: protezione CSRF
- 20. Protezione CSRF: dobbiamo generare un token per ogni modulo?
- 21. Token CSRF non valido. Invia di nuovo il modulo. Amministratore
- 22. Django 1.9 AJAX modulo errore CSRF token 403 - "cookie CSRF non impostato"
- 23. Quali sono i rischi angolari di sicurezza per l'implementazione di aree di amministrazione restful?
- 24. Jquery e Django CSRF Token
- 25. JQuery: post FormData AND token csrf insieme
- 26. Django controlla token CSRF manualmente
- 27. Nuovo token CSRF per richiesta o NOT?
- 28. Rails Autenticità del token CSRF e Devise
- 29. Come ottenere un token CSRF in iOS?
- 30. Quali sono alcune tecniche valide per combinare la protezione CSRF con le API RESTful?
Sembra che qualcuno stia cercando di saperne di più sulla sicurezza delle app. – park