HTTP Security Headers - Same Origin Policy

HTTP Security Headers - Same Origin Policy

Segurança é um assunto difícil. É extremamente fácil deixar brechas de segurança durante o desenvolvimento de uma aplicação. Neste artigo explico como HTTP Security Headers pode ajudar teu website.

A não ser que segurança seja uma feature intrínseca ao negócio, como em caso dos bancos. Infelizmente ela acaba ficando para segundo plano, isso quando é lembrada.

Para proteger uma aplicação ou website há muitos pontos para considerar, mas definitivamente um bom ponto de partida é explorar os HTTP Security Headers.

Essa série de posts tem como intuito apresentar os principais Security Headers e como configura-los da melhor forma. As configurações a seguir são para .NET Core (ASP.NET MVC e WEB API)

Same Origin Policy / CORS (Cross-Origin Resource Sharing)

CORS (Cross-Origin Resource Sharing) é uma especificação do W3C que, quando implementado pelo navegador, permite que um site acesse recursos de outro site mesmo estando em domínios diferentes.

Explicando um pouco melhor: os navegadores fazem uso de uma funcionalidade de segurança chamada Same-Origin Policy: um recurso de um site só pode ser chamado por outro site se os 2 sites estiverem sob o mesmo domínio (mesmo endereço, por ex.: meudominio.com.br). Isso limita a chamada de APIs REST por aplicações JS, por exemplo, hospedadas em servidores diferentes (front-end e back-end em camadas distintas). Isso porque o navegador considera recursos do mesmo domínio somente aqueles que usam o mesmo protocolo (http ou https), a mesma porta e o mesmo endereço (mesmo subdomínios, subdominio.meudominio.com.br, por exemplo, não são considerados seguros e não funcionam).

Exemplo de configuração no .NET Core:

Não foi fornecido texto alternativo para esta imagem

A configuração acima controla quem tem acesso a aplicação e como pode acessar.

Qualquer duvida deixe nos comentários. Até o próximo post.

Exemplo e implantação aqui

Erick Vils

Fundador e CTO da Solutto (ERP para Franquias)

4 a

Rodrigo, outra coisa que pensei aqui. Como consigo simular acessos através de um webClient (por programação ou por apps como postman ou insomnia), os headers CORS não protegem tentativas de acesso à api, certo?

Erick Vils

Fundador e CTO da Solutto (ERP para Franquias)

4 a

Ótimo artigo Rodrigo. Eu complementaria apenas com um alerta que é meio óbvio para uns mas nem tanto para outros. Se CORS estiver desabilitado para qq origem uma api rest pública ou protegida por access token ou por JWT não funcionaria. Ou seja, se você está implementando uma web api para ser consumida por qualquer parceiro e proveniente de qualquer origem, você não pode habilitar a proteção e tem de liberar cross-origin. Estou correto ou falei besteira?

Daniel Tavares Fernandes

Software Developer | Tech Lead at IBM

4 a

Parabéns pelo post e assunto abordado. Estive implementando justamente essas configurações em uma API está semana e da pra ver claramente como são importantes

Entre para ver ou adicionar um comentário

Outros artigos de Rodrigo de Oliveira

  • Nagomi: O Caminho para a Harmonia na Vida Pessoal e Profissional

    Nagomi: O Caminho para a Harmonia na Vida Pessoal e Profissional

    Em um mundo cada vez mais acelerado, encontrar equilíbrio e paz tornou-se um desafio constante. A busca incessante por…

  • Construindo Clientes HTTP Tipados com Refit no C#

    Construindo Clientes HTTP Tipados com Refit no C#

    O Refit é uma biblioteca open-source para .NET que simplifica a criação de clientes HTTP fortemente tipados.

    3 comentários
  • Renovando Perspectivas com Henri Bergson

    Renovando Perspectivas com Henri Bergson

    O início de um novo ano carrega consigo um simbolismo poderoso. É um convite para refletirmos sobre o que passou…

  • A Passagem do Tempo

    A Passagem do Tempo

    O final do ano é sempre um convite à introspecção. O calendário nos obriga a uma pausa – mesmo que breve – para…

  • Os Sete Princípios de Testes de Software: Uma Visão para Desenvolvedores Iniciantes

    Os Sete Princípios de Testes de Software: Uma Visão para Desenvolvedores Iniciantes

    Ao longo de mais de 20 anos trabalhando com desenvolvimento de software, percebi que criar aplicações vai muito além de…

    2 comentários
  • A Filosofia Não Serve para Nada

    A Filosofia Não Serve para Nada

    "A filosofia não serve para nada" é uma provocação que, à primeira vista, pode soar verdadeira para quem está…

  • Como Melhorar a Performance no EF Core 8

    Como Melhorar a Performance no EF Core 8

    O Entity Framework Core 8 trouxe muitas melhorias, mas a performance das consultas e operações ainda é um ponto que…

  • Quando o Progresso nos Esvazia

    Quando o Progresso nos Esvazia

    Carlos Drummond de Andrade, em sua aguda sensibilidade poética, nos oferece a frase: "O progresso nos dá tanta coisa…

  • Carregamento de Dados: Lazy, Eager e Explicit no EF Core 8

    Carregamento de Dados: Lazy, Eager e Explicit no EF Core 8

    Quando trabalhamos com Entity Framework Core (EF Core), uma das questões fundamentais é como lidar com o carregamento…

    6 comentários
  • Trabalho e Significado

    Trabalho e Significado

    Hannah Arendt, uma das mais importantes filósofas do século XX, oferece uma visão profunda e organizada sobre a relação…

    2 comentários

Outras pessoas também visualizaram

Conferir tópicos