X-XSS-Protection fue un encabezado de seguridad que existe desde la versión 4 de Google Chrome. Fue diseñado para habilitar una herramienta que verificara el contenido del sitio web en busca de secuencias de comandos entre sitios reflejadas. Todos los principales navegadores ahora han retirado el soporte para el encabezado, ya que terminó introduciendo fallas de seguridad. Se recomienda encarecidamente que no establezca el encabezado en absoluto y, en su lugar, configure una política de seguridad de contenido sólida.
Sugerencia: Cross-Site Scripting generalmente se abrevia al acrónimo "XSS".
Las secuencias de comandos de sitios cruzados reflejadas son una clase de vulnerabilidad XSS en la que el exploit se codifica directamente en la URL y solo afecta al usuario que visita la URL. El XSS reflejado es un riesgo cuando la página web muestra datos de la URL. Por ejemplo, si una tienda web le permite buscar productos, es muy posible que tenga una URL similar a esta "website.com/search?term=gift" e incluya la palabra "regalo" en la página. El problema comienza si alguien coloca JavaScript en la URL, si no se desinfecta correctamente, este JavaScript podría ejecutarse en lugar de imprimirse en la pantalla como debería ser. Si un atacante pudiera engañar a un usuario para que haga clic en un enlace con este tipo de carga útil XSS, es posible que pueda hacer cosas como hacerse cargo de su sesión.
X-XSS-Protection estaba destinado a detectar y prevenir este tipo de ataque. Desafortunadamente, con el tiempo, se encontraron una serie de omisiones e incluso vulnerabilidades en la forma en que funcionaba el sistema. Estas vulnerabilidades significaron que la implementación del encabezado X-XSS-Protection introduciría una vulnerabilidad de secuencias de comandos entre sitios en un sitio web que de otro modo sería seguro.
Para protegerse contra esto, con el entendimiento de que el encabezado de la Política de seguridad de contenido, generalmente abreviado como "CSP", incluye la funcionalidad para reemplazarlo, los desarrolladores de navegadores decidieron retirar la función. La mayoría de los navegadores, incluidos Chrome, Opera y Edge, han eliminado el soporte o, en el caso de Firefox, nunca lo implementaron. Se recomienda que los sitios web deshabiliten el encabezado para proteger a los usuarios que aún usan navegadores heredados con la función habilitada.
X-XSS-Protection se puede reemplazar con la configuración "insegura en línea" en el encabezado CSP. Ser capaz de habilitar esta configuración puede requerir mucho trabajo dependiendo del sitio web, ya que significa que todo JavaScript debe estar en scripts externos y no se puede incluir en el HTML directamente.