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