Nesse post vou mostrar como proteger suas páginas web ou até mesmos serviços de serem utitizados em outros domínios, ou seja, evitar que outra página web inclua um IFrame com sua página ou até mesmo evitar que uma página web utilize recursos REST de sua aplicação.
Existe uma maneira não padronizada, porém a maioria dos browser consegue identificar.
Para isso basta inserir os seguintes parâmetros no HEADER:
1 |
name="X-Frame-Options" value="SAMEORIGIN" |
Com esse parâmetro no HEADER, você permite que apenas páginas de dentro do mesmo domínio consigam utilizar seus recursos.
Segue abaixo um link com as opções do X-Frame-Option
https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
Existe uma maneira padronizada para fazer praticamente o mesma coisa.
Para isso basta inserir os seguintes parâmetros no HEADER:
1 |
name="Content-Security-Policy" value="frame-ancestors 'self'" |
Para liberar recursos para um domínio específico, basta informá-los no parâmetro, segue abaixo um exemplo:
1 |
name="Content-Security-Policy" value="frame-ancestors 'self' http://www.brunorota.com.br http://www.google.com" |
No exemplo acima, eu liberando o acesso aos recursos para páginas de dentro da mesma aplicação e para os domínios brunorota e google.com.
Segue o link abaixo para maiores informações sobre o Content-Security-Policy
https://www.tinfoilsecurity.com/blog/what-is-clickjacking
Obs: Existe diversas maneiras de inserir valores no HEADER, via apache, via Filter Servlet, etc…
Segue abaixo um exemplo de como inserir esses parâmetros via Filter Servlet.
http://www.brunorota.com.br/2015/08/06/filtro-para-desabilitar-cache-das-paginas/
Basta alterar o valor dos parâmetros.
É isso, até o próximo post galera.