O que o X-XSS-Protection faz?

X-XSS-Protection era um cabeçalho de segurança que existe desde a versão 4 do Google Chrome. Ele foi projetado para habilitar uma ferramenta que verifica o conteúdo do site quanto a scripts cross-site refletidos. Todos os principais navegadores retiraram o suporte para o cabeçalho, pois ele acabou introduzindo falhas de segurança. É altamente recomendável que você não defina o cabeçalho e, em vez disso, configure uma forte política de segurança de conteúdo.

Dica: Cross-Site Scripting geralmente é abreviado para a sigla “XSS”.

O script de cross-site refletido é uma classe de vulnerabilidade XSS em que a exploração é codificada diretamente no URL e afeta apenas o usuário que visita o URL. O XSS refletido é um risco quando a página da Web exibe dados do URL. Por exemplo, se uma loja na web permite que você pesquise produtos, ela pode ter um URL parecido com “website.com/search? termo = presente ”e inclua a palavra“ presente ”na página. O problema começa quando alguém coloca JavaScript no URL, se não for devidamente limpo, esse JavaScript pode ser executado em vez de impresso na tela como deveria ser. Se um invasor conseguir enganar um usuário para que ele clique em um link com esse tipo de carga útil XSS, ele poderá fazer coisas como assumir o controle de sua sessão.

O X-XSS-Protection foi concebido para detectar e prevenir este tipo de ataque. Infelizmente, com o tempo, uma série de desvios e até vulnerabilidades foram encontradas no funcionamento do sistema. Essas vulnerabilidades significavam que a implementação do cabeçalho X-XSS-Protection introduziria uma vulnerabilidade de script entre sites em um site que de outra forma seria seguro.

Para se proteger contra isso, com o entendimento de que o cabeçalho da Política de Segurança de Conteúdo, em geral abreviado para “CSP”, inclui funcionalidade para substituí-lo, os desenvolvedores de navegador decidiram aposentar o recurso. A maioria dos navegadores, incluindo Chrome, Opera e Edge removeu o suporte ou, no caso do Firefox, nunca o implementou. É recomendado que os sites desabilitem o cabeçalho para proteger os usuários que ainda usam navegadores legados com o recurso habilitado.

X-XSS-Protection pode ser substituído pela configuração “inseguro-inline” no cabeçalho CSP. Poder habilitar essa configuração pode dar muito trabalho dependendo do site, pois isso significa que todo o JavaScript deve estar em scripts externos e não pode ser incluído no HTML diretamente.