¿Los servicios web de JSON son vulnerables a los ataques CSRF?

Estoy creando un servicio web que utiliza exclusivamente JSON para su contenido de solicitud y respuesta (es decir, sin carga útil codificada).

¿Un servicio web es vulnerable al ataque CSRF si se cumple lo siguiente?

AlgunaPOST solicitud sin un objeto JSON de nivel superior, por ejemplo,{"foo":"bar"}, será rechazado con un 400. Por ejemplo, unPOST solicitud con el contenido42 Sería así rechazado.

AlgunaPOST solicitud con un tipo de contenido diferente aapplication/json será rechazado con un 400. Por ejemplo, unPOST solicitud con tipo de contenidoapplication/x-www-form-urlencoded Sería así rechazado.

Todas las solicitudes GET seránSeguro, y por lo tanto no modificar ningún dato del lado del servidor.

Los clientes se autentican a través de una cookie de sesión, que el servicio web les brinda después de proporcionar un par correcto de nombre de usuario / contraseña a través de un POST con datos JSON, por ejemplo.{"username":"[email protected]", "password":"my password"}.

Pregunta auxiliar: SonPUT yDELETE ¿Alguna vez ha sido vulnerable a la CSRF? Lo pregunto porque parece que la mayoría de los navegadores (¿todos?) Rechazan estos métodos en formularios HTML.

EDITAR: Artículo añadido # 4.

EDITAR: Muchos buenos comentarios y respuestas hasta ahora, pero nadie ha ofrecido un ataque CSRF específico al cual este servicio web es vulnerable.

Respuestas a la pregunta(5)

Su respuesta a la pregunta