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).

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 (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:

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 com navegadores

BCD tables only load in the browser

Veja também