O protocolo HTTP possui diversos Headers que podem aumentar consideravelmente a seguranca de sua aplicacao web e esses Headers podem ser muito uteis para prevenir alguns tipos de ataques.A ideia deste artigo e mostrar todas as opcoes de Header HTTP que voce pode utilizar para aumentar a seguranca de sua aplicacao e como voce pode configura-lo.Confira abaixo:Access-Control-Allow-OriginHoje e normal encontrarmos empresas que disponibilizam seus servicos atraves de APIs e que justificam o grande numero de requisicoes com a origem de diversas fontes, mas diversas empresas nao fornecem esse servico e podem usar um Header HTTP chamado Access-Control-Allow-Origin que e parte integrante do Cross-Origin Resource Sharing (CORS). Este cabecalho permite voce definir quais enderecos podem acessar os recursos do seu website.Um exemplo de utilizacao seria:Access-Control-Allow-Origin: http://labs.siteblindado.comOnde seria permitido apenas o proprio site acessar os recursos. Voce pode utilizar o Wildcard (*), onde permite que todos os sites acessem as informacoes, mas nao e recomendado.Maiores informacoes:http://www.w3.org/TR/cors/https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORSContent-Security-PolicyO Content Security Policy e um cabecalho HTTP que fornece uma whitelist de recursos confiaveis no qual o navegador podera confiar. Um recurso pode ser um script, CSS, imagem ou outro tipo de arquivo que podera ser indicado. Isso significa que mesmo se um atacante conseguir injetar um codigo XSS no seu site, o CSP podera impedir a sua execucao.Voce podera utilizar o Content Security Policy no Header como mostrado abaixo:Content-Security-Policy: policySendo que o texto policy devera seguir algumas diretivas. Veja um exemplo:ContentSecurityPolicy:scriptsrc 'self' scripts.seusite.com.br;mediasrc 'none';imgsrc *;defaultsrc 'self' http://*.seusite.com.brNesse exemplo, os scripts podem ser carregados apenas do servidor atual e da URL scripts.seusite.com.br. Audio e video nao podem ser carregados de nenhum local, imagens podem ser carregadas de qualquer host e qualquer outro recurso pode ser carregado apenas do servidor atual ou de todos os subdominios em seusite.com.br.O unico problema atual do CSP e que a interpretacao e diferente em alguns navegadores e por isso voce tera que fazer um tratamento de qual Header enviar, como no caso do Safari, que voce precisara usar o modelo abaixo.X-WebKit-CSP: policyMais informacoes:http://content-security-policy.com/https://en.wikipedia.org/wiki/Content_Security_Policyhttps://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_PolicyX-Content-Type-OptionsEste cabecalho permite proteger sua aplicacao contra um ataque especifico chamado MIME-Type confusion ou tambem conhecido como MIME sniffing.A utilizacao desse cabecalho e muito simples e necessita apenas adicionar a opcao nosniff no cabecalho, como mostrado abaixo:X-Content-Type-Options: nosniffStrict-Transport-SecurityHTTP Strict Transport Security (HSTS) traz diversas melhorias para o SSL, entre elas, forcar a utilizacao do HTTPS, impedindo que sites sejam acessados usando o protocolo HTTP ou que parte do codigo de um site que esta usando HTTPS seja executada em servidores usando o HTTP.Um exemplo de configuracao no Apache onde coloca o website na lista STS por um ano e incluiria os subdominios seria:Strict-Transport-Security: max-age=31536000; includeSubDomainsMais informacoes:http://imasters.com.br/infra/seguranca/hsts-meu-https-nao-esta-seguro/https://www.owasp.org/index.php/HTTP_Strict_Transport_SecurityX-Frame-OptionsO principal objetivo do X-Frame-Options e proteger contra os ataques de Clickjacking. Este cabecalho permite que o proprietario do site decida quais sites estao autorizados a incluir conteudo do seu site em outros locais.A melhor opcao e configurar como SAMEORIGIN que permite apenas os recursos que sao parte da mesma origem acessar. Voce tambem pode configurar como "DENY", que nega qualquer recurso (local ou remoto) de tentar incluir os recursos.Um exemplo de utilizacao seria:X-Frame-Options: SAMEORIGINO X-Frame-Options