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.
Nota:
- Chrome removeu o XSS Auditor deles
- Firefox não tem, e não irá implementar
X-XSS-Protection
- Edge aposentou o filtro XSS delesIsso significa que se você não precisa dar suporte para navegadores legado, é recomendado que você use
Content-Security-Policy
sem permitir scriptsunsafe-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 com navegadores
BCD tables only load in the browser