22 pontos por ragus 2025-01-10 | Ainda não há comentários. | Compartilhar no WhatsApp

1. Entenda que o CORS é uma gambiarra temporária para compensar uma falha de design dos navegadores.

  • O CORS (Compartilhamento de Recursos entre Origens) resolve problemas de segurança causados por credenciais implícitas em requisições entre origens.
  • O comportamento padrão dos navegadores expõe os usuários ao risco de ataques XSRF.
  • O CORS tenta mitigar esses problemas, mas tem limitações fundamentais dentro do escopo de segurança.

2. O CORS impede a leitura do resultado de requisições entre origens, mas não bloqueia a própria requisição.

  • fun-games.example não consegue ler os dados de your-bank.example, mas ainda pode executar requisições que alteram estado, como uma transferência de dinheiro.
  • Isso acontece por causa da forma como os navegadores lidam com cookies e credenciais por padrão.

3. Uma segurança eficaz entre origens começa ignorando credenciais implícitas.

  • Remova ou permita explicitamente cookies e credenciais semelhantes em requisições entre origens.
  • Use middleware que aproveite os cabeçalhos Sec-Fetch-* para filtrar ou remover cookies entre origens.

4. Credenciais explícitas são uma alternativa mais segura do que credenciais implícitas.

  • Use o cabeçalho Authorization com tokens de autenticação em vez de cookies.
  • Credenciais explícitas evitam o uso indevido de credenciais entre sites diferentes.
  • Não é adequado para sites com renderização no servidor, mas é a melhor abordagem para APIs e aplicações client-side.

5. Implemente cookies SameSite para restringir o uso de credenciais entre origens.

  • Use SameSite=Lax para que, por padrão, cookies não sejam incluídos em requisições entre origens.
  • Para uma política mais rígida, escolha SameSite=Strict. Porém, isso pode afetar a usabilidade (por exemplo, logout após navegação entre origens).

6. Adote uma política de CORS simples e segura.

  • Política padrão: Access-Control-Allow-Origin: * e Access-Control-Allow-Methods: * permitem apenas acesso anônimo.
  • Essa política protege o site contra uso indevido não intencional de credenciais ao desativar credenciais implícitas em requisições entre origens.

7. Não complique demais a política de CORS em nome da segurança.

  • Configurações excessivamente específicas podem criar uma falsa sensação de segurança.
  • Proxies de CORS e outros contornos podem burlar políticas impostas pelo navegador, anulando esforços para restringir o acesso.

8. Entenda o movimento mais amplo em direção a padrões mais seguros na web.

  • Os navegadores estão explorando abordagens como State Partitioning (Firefox), Tracking Prevention (Safari) e CHIPS (Chrome) para resolver problemas de credenciais entre origens.
  • Essas iniciativas buscam melhorar a segurança e a privacidade do usuário ao limitar o compartilhamento de cookies e credenciais entre origens.

9. Reconheça que o CORS é uma solução imperfeita.

  • A retrocompatibilidade do CORS adiciona complexidade sem resolver completamente os problemas básicos de segurança.
  • Os navegadores estão adotando lentamente novas abordagens para mitigar esses problemas, mas o progresso é inconsistente.

Ainda não há comentários.

Ainda não há comentários.