X-XSS-Protection

O cabeçalho de resposta HTTP X-XSS-Protection é uma funcionalidade do Internet Explorer, Chrome e Safari que impede páginas de carregarem quando eles detectam ataques de scripting entre sites (XSS) refletidos. Apesar destas proteções serem majoritariamente desnecessárias em navegadores modernos em sites utilizando uma forte Content-Security-Policy que desabilita o uso de JavaScript inline ('unsafe-inline'), eles ainda podem oferecer proteções para usuários de navegadores mais antigos que ainda não suportam CSP.

Isso significa que se você não precisa dar suporte para navegadores legado, é recomendado que você use Content-Security-Policy sem permitir scripts unsafe-inline ao invés disso.

Tipo de cabeçalho Response header
Forbidden header name não

Sintaxe

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>
0
Desabilita filtragem XSS.
1
Habilita filtragem XSS (geralmente padrão em navegadores). Se um ataque de scripting entre sites é detectado, o navegador irá higienizar a página (remover as partes inseguras).
1; mode=block
Habilita filtragem XSS. Ao invés de higienizar a página, o navegador irá impedir a renderização da página em que o ataque foi detectado.
1; report=<reporting-URI> (Chromium somente)
Habilita filtragem XSS. Se o ataque de scripting entre sites é detectado, o navegador irá higienizar a página e reportar a violação. Isso utiliza a funcionalidade da diretiva CSP report-uri para enviar o relatório.

Exemplos

Bloqueia páginas de carregarem quando elas detectam ataques XSS refletidos:

X-XSS-Protection: 1; mode=block

PHP

header("X-XSS-Protection: 1; mode=block");

Apache (.htaccess)

<IfModule mod_headers.c>
  Header set X-XSS-Protection "1; mode=block"
</IfModule>

Nginx

add_header "X-XSS-Protection" "1; mode=block";

Especificações

Não faz parte de nenhuma especificação ou rascunho.

Compatibilidade de navegador

BCD tables only load in the browser

Veja também