¿Esta respuesta es vulnerable a xss?

0

Mi aplicación está devolviendo el parámetro de categoría en el cuerpo de json como la siguiente respuesta ...

HTTP/1.1 200 OK
Content-Type: text/javascript; charset=utf-8
P3P: policyref="/w3c/p3p.xml", CP="CAO PSA OUR"
Server: nginx
X-frame-options: SAMEORIGIN
Content-Length: 139
Accept-Ranges: bytes
Date: Mon, 26 Jun 2017 15:47:55 GMT
Connection: keep-alive
Set-Cookie: bf-geo-country=EG; expires=Tue, 27 Jun 2017 15:47:55 GMT; path=/; do                                                                main=.myapp.com;
Content-Security-Policy: upgrade-insecure-requests
Strict-Transport-Security: max-age=120; preload
X-Served-By: cache-hhn1524-HHN
X-Cache: MISS
X-Cache-Hits: 0    
Vary: Accept-Encoding

{
   "response" : "an error occurred",
   "campaign_monitor_errors" : [
      "no config for Newsz<htMl onload=prompt(22)/></html>"
   ]
}

¿Puede esto conducir a Reflected XSS por MIME sniffing en IE o Chrome?

    
pregunta Yasser Gersy 26.06.2017 - 17:55
fuente

1 respuesta

1

La respuesta corta es que el parámetro debe codificarse independientemente. Como paj28 menciona en el comentario anterior, depende de lo que haga la página del lado del cliente con los datos.

El libro, " The Tangled Web " de Michal Zalewski tiene un capítulo sobre detección de contenido. Él dice: "En la historia de la web, nada ha demostrado ser tan equivocado como oler el contenido ".

Él da consejos al final del capítulo. El consejo principal de este libro y de otras fuentes es usar el encabezado X-Content-Options: nosniff para evitar que el navegador huela el contenido y presente sus propias respuestas e ignore el encabezado de tipo de contenido.

La reacción de su navegador al JavaScript real en su ejemplo dependerá de la versión del navegador. Nota:

  • el tipo de contenido de texto / javascript está en desuso. El tipo MIME oficial para JavaScript es application / javascript (a partir de 2006) enlace
respondido por el mcgyver5 27.06.2017 - 18:08
fuente

Lea otras preguntas en las etiquetas