Estoy creando un método de prevención CSRF en nuestro marco de aplicación. Utilizo, entre otras cosas, el sitio OWASP .
Hemos elegido para la medida de prevención "Enviar cookies de doble", que se describe en la OWAS CSRF hoja de trucos
Los estados de la hoja de trucos:
Cuando un usuario se autentica en un sitio, el sitio debe generar un Valor pseudoaleatorio (criptográficamente fuerte) ...
Parece que un usuario debe iniciar sesión primero, antes de generar el token CSRF (también conocido como "valor pseudoaleatorio (criptográficamente fuerte)").
¿Pero cómo protejo los formularios a los que se puede acceder sin autenticación? Piense en la "contraseña olvidada" y el formulario de inicio de sesión.
Creo que el texto debería ser "Cuando un usuario entra en un sitio, el sitio debe generar un valor pseudoaleatorio (criptográficamente fuerte) ..."
Esto también es más fácil de implementar, como lo hice de la siguiente manera:
- La aplicación recupera la solicitud GET: genera una cookie CSRF (sesión) (si la cookie no está ya solicitada)
- (else) La aplicación recupera la solicitud no GET (POST, PUT, etc.): validar la cookie CSRF con el token CSRF en la solicitud.
¿Me estoy perdiendo un aspecto importante aquí?