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 (en-US)) 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 (en-US).

Nota: - Chrome removeu o XSS Auditor deles

Tipo de cabeçalho Response header (en-US)
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 (en-US) para enviar o relatório.

Exemplos

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

bash
X-XSS-Protection: 1; mode=block

PHP

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

Apache (.htaccess)

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

Nginx

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

Especificações

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

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também