Ho lavorato con CodeIgniter per circa 3 settimane e sto molto bene sulla strada per amare questo framework. Comunque ho visto il codice core del framework e stavo leggendo la protezione CSRF. Ho notato (la mancanza di) rigenerazione CSRF. Tutto ciò che fa è estendere la vita dei token. Questo mi sta rendendo molto nervoso. Ho giocato con i tempi di scadenza e non posso farla scadere una volta ogni due minuti. Renderebbe la mia applicazione inutilizzabile poiché si basa principalmente sull'invio di moduli.
La mia domanda è: perché qualcuno NON vorrebbe avere un token rigenerato per richiesta / per modulo?
È una buona pratica mantenere lo stesso token? Ho letto OWASP e, a parte i campi nascosti in una forma, altre soluzioni stanno usando CAPTCHA, ma in questo modo si interromperà anche la mia applicazione in quanto gli utenti non lo desiderano. Tutto sommato sono solo molto confuso sul perché sia così.
Solo per un po 'di informazioni extra questo è quello che sto facendo per prevenire eventuali perdite di informazioni:
- SSL / TLS (https) attraverso l'intera applicazione
- Rimuovi le firme del server sulle intestazioni
- imposta una chiave di crittografia a 64 chiavi per le informazioni personali e i cookie
- Xss filtro per tutti i post ottiene cookie
- convalida tutto
- Esci da qualsiasi cosa derivata dai dati immessi dall'utente.
e le seguenti sono le mie configurazioni per la sicurezza CI:
$config['cookie_secure'] = TRUE; // Send cookies only over HTTPS
$config['global_xss_filtering'] = TRUE; // Global xss filter (input only- i escape output when needed)
$config['sess_encrypt_cookie'] = TRUE; // "encrypts" session with my 64 Character encryption key
$config['sess_time_to_update'] = 10; // regenerate session id every 10 seconds
Scusa se questo post è lungo e completo, voglio solo assicurarmi che sto prendendo tutti i passaggi necessari nella sicurezza delle applicazioni.
Grazie