Os testes de segurança são apenas para orientação. Vamos primeiro ver quais são essas opções para entender exatamente o que elas fazem e como são necessárias.
-
O
HTTP X-XSS-Protection
Filtro XSS está ativado (1
) por padrão, então você o desativou definindo0
ou OwnCloud sugerindo que você definaX-XSS-Protection: 1; mode=block
, o que causará mais do que saneantes: o navegador não renderizará a página, mas apenas mostrará#
em vez disso.The
HTTP X-XSS-Protection
response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks. Although these protections are largely unnecessary in modern browsers when sites implement a strong Content-Security-Policy that disables the use of inline JavaScript ('unsafe-inline'
), they can still provide protections for users of older web browsers that don't yet support CSP.Embora sugerido pelo teste, você provavelmente ficará bem com a configuração padrão.
-
IE8
X-Content-Type-Options: nosniff
bloqueia uma solicitação se o tipo MIME não corresponder ao tipo solicitado emstyle
/script
. Suportado atualmente por todos os principais navegadores, exceto o Safari.The
X-Content-Type-Options
response HTTP header is a marker used by the server to indicate that the MIME types advertised in theContent-Type
headers should not be changed and be followed. This allows to opt-out of MIME type sniffing, or, in other words, it is a way to say that the webmasters knew what they were doing. -
X-Frame-Options: SAMEORIGIN
permite que o navegador processe uma página em<frame>
,<iframe>
ou<object>
apenas se for da mesma origem da própria página.Essa é uma boa medida contra o XSS, mas significa que você não pode incorporar qualquer conteúdo externo a essas tags, mesmo quando a fonte é legítima, por exemplo, um vídeo do YouTube. Nesse caso, as configurações
X-Frame-Options: ALLOW-FROM http://www.youtube.com/
manterão você protegido de outras fontes, mas você ainda receberá um erro desse teste.
Quando você entende o objetivo desses cabeçalhos, pode defini-los corretamente para aumentar a segurança sem perder as funcionalidades necessárias para o seu site. Todos os métodos de prevenção de XSS são bons especialmente para sites em que usuários ou funcionários criam conteúdo. Em um site estático, onde você sabe o que está fazendo e controla todas as páginas, elas podem ser desnecessariamente restritivas.
Com essas informações, não é difícil definir esses cabeçalhos no Nginx com add_header
:
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
Elas podem ser definidas globalmente em http
context ou específicas para server
, location
ou if
em location
.