API de CSRF y JSON

2

Estaba buscando una implementación CSRF para Express.js, y encontré algo que me llamó la atención, en esta publicación dice que una API JSON no es vulnerable a los ataques CRSF ... ¿es correcto? ¿no es posible falsificar una solicitud JSON para realizar una operación no intencional en este caso?

enlace

Teniendo en cuenta que el encType para formularios permitido es application / x-www-form-urlencoded , multipart / form-data y text / plain Tiene sentido totalmente ...

    
pregunta DGomez 09.02.2017 - 18:50
fuente

1 respuesta

2

Aún son susceptibles a los ataques XSS, a la aplicación plain/text json, y si las políticas de origen no se configuran correctamente. Se ha respondido antes en Stack Overflow, pero no aquí en realidad. La respuesta sobre Stack Overflow se puede encontrar aquí pero ' ll sinopsis aquí por el bien del archivo:

Los formularios están limitados a dos métodos: GET y POST
Los formularios están limitados a tres tipos de contenido: application/x-www-form-urlencoded , multipart/form-data y text/plain

Dado que está publicando sobre el tipo de contenido application/json , necesita usar XMLHTTPRequest submit que está bloqueado con las Políticas de Origen (Igual, Cruzada), por lo que ahora depende del servidor.

Sin embargo, si el formulario genera un JSON válido pero establece el tipo de contenido en text/plain y el servidor no comprueba que CSRF aún es posible si todo el servidor está haciendo el análisis de los datos sin verificar el tipo de contenido.

Así que realmente depende del servidor verificar la solicitud posterior, solo permitir el tipo de contenido application/json y usar las políticas de origen correctas para evitar CSRF con una API JSON. Recuerde que CSRF siempre depende del servidor para evitar el ataque.

    
respondido por el Robert Mennell 09.02.2017 - 19:35
fuente

Lea otras preguntas en las etiquetas