¿Cuál es el encabezado http “X-XSS-Protection”?

Así que he estado jugando con HTTP para divertirme en telnet ahora (es decir, simplemente escribiendo “telnet google.com 80” y colocando GET y POST aleatorios con diferentes encabezados y similares) pero me he encontrado con algo que google. com transmite en sus encabezados lo que no sé.

He estado buscando en http://www.w3.org/Protocols/rfc2616/rfc2616.html y no he encontrado ninguna definición para este encabezado http particular que google parece estar generando:

GET / HTTP/1.1 HTTP/1.1 200 OK Date: Wed, 01 Feb 2012 03:42:24 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 Set-Cookie: PREF=ID=6ddbc0a0342e7e63:FF=0:TM=1328067744:LM=1328067744:S=4d4farvCGl5Ww0C3; expires=Fri, 31-Jan-2014 03:42:24 GMT; path=/; domain=.google.com Set-Cookie: NID=56=PgRwCKa8EltKnHS5clbFuhwyWsd3cPXiV1-iXzgyKsiy5RKXEKbg89gWWpjzYZjLPWTKrCWhOUhdInOlYU56LOb2W7XpC7uBnKAjMbxQSBw1UIprzw2BFK5dnaY7PRji; expires=Thu, 02-Aug-2012 03:42:24 GMT; path=/; domain=.google.com; HttpOnly P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." Server: gws X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Transfer-Encoding: chunked 1000 

¿Alguien sabe qué es “X-XSS-Protection”?

X-XSS-Protection es un encabezado HTTP entendido por Internet Explorer 8 (y versiones más recientes). Este encabezado permite a los dominios alternar entre el “Filtro XSS” de IE8, lo que evita algunas categorías de ataques XSS. IE8 tiene el filtro activado de manera predeterminada, pero los servidores pueden cambiar si están desactivados configurando

  X-XSS-Protection: 0 

Consulte también http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header. aspx

  • X-XSS-Protection: 1 : protección Force XSS (útil si el usuario deshabilitó la protección XSS)

  • X-XSS-Protection: 0 : desactiva la protección XSS

  • El mode=block token mode=block impedirá que los navegadores (IE8 + y Webkit) representen páginas (en lugar de desinfectar) si se detecta un posible ataque de reflexión XSS (= no persistente).

/! \ Warning, mode=block crea una vulnerabilidad en IE8 ( más información ).

Más información: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx y http://blog.veracode.com / 2014/03 / guidelines-for-setting-security-headers /

Este encabezado de respuesta se puede usar para configurar la protección reflectiva XSS incorporada de un agente de usuario. Actualmente, solo Internet Explorer, Google Chrome y Safari (WebKit) de Microsoft admiten este encabezado.

Internet Explorer 8 incluye una nueva función para ayudar a prevenir los ataques de guiones cruzados entre sitios, conocido como el filtro XSS . Este filtro se ejecuta de forma predeterminada en las zonas de seguridad de Internet, de confianza y restringidas. Las páginas de la zona Intranet local pueden optar por la protección con el mismo encabezado.

Acerca del encabezado que publicaste en tu pregunta,

El encabezado X-XSS-Protection: 1; mode=block X-XSS-Protection: 1; mode=block habilita el filtro XSS. En lugar de desinfectar la página, cuando se detecta un ataque XSS, el navegador impedirá la visualización de la página.

En marzo de 2010, agregamos soporte para IE8 para un nuevo token en el encabezado X-XSS-Protection, mode = block.

 X-XSS-Protection: 1; mode=block 

Cuando este token está presente, si se detecta un posible ataque de Reflexión XSS, Internet Explorer impedirá el renderizado de la página. En lugar de tratar de desinfectar la página para eliminar quirúrgicamente el ataque XSS, IE renderizará solo “#”.

Internet Explorer reconoce un posible ataque de scripting entre sitios. Registra el evento y muestra un mensaje apropiado para el usuario. El artículo de MSDN describe cómo funciona este encabezado.

Cómo funciona este filtro en IE ,

Más sobre este artículo, https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/

El filtro XSS funciona como un componente IE8 con visibilidad de todas las solicitudes / respuestas que fluyen a través del navegador. Cuando el filtro descubre XSS probable en una solicitud entre sitios, identifica y neutraliza el ataque si se reproduce en la respuesta del servidor. A los usuarios no se les presentan preguntas que no pueden responder: IE simplemente bloquea el script malicioso para que no se pueda ejecutar.

Con el nuevo filtro XSS, los usuarios de IE8 Beta 2 que se encuentren con un ataque XSS de tipo 1 verán una notificación como la siguiente:

IE8 XSS Attack Notification

La página ha sido modificada y el ataque XSS está bloqueado.

En este caso, el filtro XSS ha identificado un ataque de secuencias de comandos entre sitios en la URL. Ha neutralizado este ataque cuando el script identificado se volvió a reproducir en la página de respuesta. De esta forma, el filtro es efectivo sin modificar una solicitud inicial al servidor o bloquear una respuesta completa.

El evento Cross-Site Scripting Filter se registra cuando Windows Internet Explorer 8 detecta y mitiga un ataque de secuencias de comandos entre sitios (XSS). Los ataques de scripting entre sitios ocurren cuando un sitio web, generalmente malicioso, inyecta (agrega) código JavaScript en solicitudes que de otro modo serían legítimas a otro sitio web. La solicitud original es generalmente inocente, como un enlace a otra página o una secuencia de comandos Common Gateway Interface (CGI) que proporciona un servicio común (como un libro de visitas). El script inyectado generalmente intenta acceder a información privilegiada o servicios que el segundo sitio web no pretende permitir. La respuesta o la solicitud generalmente refleja los resultados en el sitio web malicioso. El filtro XSS, una característica nueva de Internet Explorer 8, detecta JavaScript en las solicitudes URL y HTTP POST. Si se detecta JavaScript, el filtro XSS busca evidencia de reflexión, información que se devolvería al sitio web atacante si la solicitud atacante se hubiera enviado sin cambios. Si se detecta la reflexión, el filtro XSS desinfecta la solicitud original para que no se pueda ejecutar JavaScript adicional. El filtro XSS luego registra esa acción como un evento de filtro de script entre sitios. La siguiente imagen muestra un ejemplo de un sitio que se modifica para evitar un ataque de secuencias de comandos entre sitios.

Fuente: https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx

Los desarrolladores web pueden desear deshabilitar el filtro para su contenido. Pueden hacerlo configurando un encabezado HTTP:

 X-XSS-Protection: 0 

Más sobre los encabezados de seguridad en,

  • Pautas para configurar encabezados de seguridad

  • Encabezados HTTP de seguridad – X-XSS-PROTECTION

  • MDN Docs X-XSS-Protection

Puedes ver en esta lista de encabezados HTTP útiles .

X-XSS-Protection: este encabezado habilita el filtro Cross-site scripting (XSS) integrado en los navegadores web más recientes. Por lo general, está habilitado por defecto de todos modos, por lo que la función de este encabezado es volver a habilitar el filtro para este sitio web en particular si el usuario lo inhabilitó. Este encabezado es compatible con IE 8+ y Chrome (no estoy seguro de qué versiones). El filtro anti-XSS se agregó en Chrome 4. Se desconoce si esa versión respetó este encabezado.