ubicación del token csrf

2

Sé que hay varios lugares para colocar un token csrf y el más común es colocar un campo de entrada oculto en un formulario. Segundo está en una cookie con la bandera httpOnly. Lo que quiero saber es si existe una oposición a colocarlo en una variable de javascript para que se pueda utilizar cada vez que se realice una solicitud posterior para cambiar los datos.

De lo contrario, debe colocarlo en el campo oculto de un formulario para cada formulario y podría ser un problema si el formulario se genera dinámicamente.

    
pregunta Nathan 01.08.2018 - 09:38
fuente

1 respuesta

3

Puede agregar dinámicamente el token CSRF a los formularios a través de JavaScript. Pero debes tener en cuenta un par de problemas:

  • Si tiene formularios de dominio cruzado, debe tener cuidado de que su código JavaScript no les agregue tokens CSRF, ya que perdería el token.
  • Si su aplicación requiere usuarios sin el mayor nivel de privilegio para crear formularios, entonces pueden realizar ataques CSRF ya que los tokens se agregarán automáticamente.
  • La inyección de HTML conducirá a CSRF mediante la inyección de un formulario, lo que aumenta un poco el impacto de la inyección de HTML. De la misma manera, si permite un subconjunto de HTML para algunos usuarios, y su filtro tiene una vulnerabilidad que permite la creación de formularios, será vulnerable a CSRF.

No relacionado: los tokens CSRF siempre tienen que estar en dos lugares; el enfoque más común es almacenarlos en el lado del servidor en la sesión y, además, en otro lugar (por ejemplo, enviarlos en un formulario). Eso parece ser a lo que te refieres en tu pregunta. Con este enfoque, almacenar el token en una cookie en lugar de un formulario no funcionará (siempre se enviará y se validará con el token del lado del servidor). El almacenamiento del token en una cookie se usaría en lugar del almacenamiento del lado del servidor. Aún debe enviarlo, por ejemplo, a través del formulario.

    
respondido por el tim 01.08.2018 - 10:30
fuente

Lea otras preguntas en las etiquetas