Same-Origin Policy (SOP)
A Política de Mesma Origem é o pilar fundamental da segurança na web. Ela impede que um script em uma página acesse dados de outra página, a menos que ambas as páginas tenham a mesma origem.
O que é uma "Origem"?
Uma origem é definida pela combinação de três elementos:
- Protocolo (ex: http, https)
- Domínio (ex: portaltelemedicina.com.br)
- Porta (ex: 80, 443, 3000)
Se qualquer um desses elementos for diferente, o navegador considera como origens distintas e bloqueia o acesso direto via scripts (AJAX, Fetch, DOM).
Por que isso importa?
Sem a SOP, se você estivesse logado no seu banco e abrisse um site malicioso em outra aba, esse site poderia usar scripts para ler seus cookies de sessão do banco, ler o saldo da sua conta ou realizar transferências em seu nome.
Como fazer vs Como não fazer
✅ Como fazer
- Confie na SOP como a primeira linha de defesa automática do navegador.
- Utilize mecanismos oficiais como CORS quando precisar deliberadamente compartilhar recursos entre diferentes domínios.
- Mantenha suas subáreas em domínios ou portas consistentes para facilitar a comunicação legítima.
❌ Como não fazer
- Tentar contornar a SOP usando técnicas inseguras como
document.domain(depreciado e inseguro). - Assumir que a SOP protege contra tudo; ela não impede que um site envie dados (como formulários POST) para outra origem, ela apenas impede que ele leia a resposta. Para proteger contra o envio, usamos CSRF tokens.
- Desabilitar a segurança do navegador durante o desenvolvimento (ex:
--disable-web-securityno Chrome) para ignorar erros de origem; resolva o problema com a configuração correta de CORS.