Tengo un servicio web que toma datos POST (JSON) y devuelve parte del objeto de solicitud en la respuesta JSON.
Esto está abierto a XSS si la respuesta es representada como HTML por el navegador, ya que alguien podría agregar HTML arbitrario al objeto de solicitud.
¿Cuál es la forma estándar de mitigar esto? Las opciones actuales que se me ocurren son:
- Permitir solo las solicitudes con el encabezado
X-Requested-With: XMLHttpRequest
para detener los ataques que se basan en solicitudes que no son ajax para mi servicio - Envíe la respuesta con el tipo de contenido
application/json
y espere que el navegador se niegue a mostrar esto como HTML - Codifique los caracteres no seguros en la respuesta (¿cómo hago esto? ¿utilizando \ uxxxx?)
No he podido encontrar una referencia concreta sobre esto.