He estado trabajando con CodeIgniter durante aproximadamente 3 semanas y estoy muy en camino de amar este marco. Sin embargo, he estado viendo el código central del marco y estaba leyendo sobre la protección CSRF. Vi (la falta de) la regeneración CSRF. Todo lo que hace es extender la vida de los tokens. Esto me está poniendo muy nervioso. Jugué con los tiempos de vencimiento y no puedo hacer que caduque una vez cada dos minutos. Haría mi aplicación inutilizable, ya que se basa principalmente en el envío del formulario.
Mi pregunta es ¿por qué alguien NO querría que un token se regenere por solicitud / por formulario?
¿Es esta una buena práctica mantener el mismo token? He estado leyendo OWASP y aparte de los campos ocultos en un formulario, otras soluciones están usando CAPTCHA, pero eso también rompería mi aplicación ya que los usuarios no quieren eso. En general, estoy muy confundido en cuanto a por qué esto es así.
Solo por un poco de información adicional, esto es lo que estoy haciendo para evitar cualquier fuga de información:
- SSL / TLS (https) en toda la aplicación
- Eliminar firmas del servidor en los encabezados
- configure una clave de cifrado de 64 claves para la información personal y las cookies
- Xss filtra todas las publicaciones para obtener cookies
- validar todo
- Escape todo lo que se derive de los datos ingresados por el usuario.
y las siguientes son mis configuraciones para la seguridad de 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
Lo siento si esta publicación es larga y extensa. Solo quiero asegurarme de que estoy tomando todos los pasos necesarios para la seguridad de la aplicación.
Gracias