Política de Mesma Origem (Same-Origin Policy)

Definição

A Política de Mesma Origem (Same-Origin Policy) é uma regra de segurança implementada pelos navegadores que restringe a interação entre páginas e recursos carregados de origens diferentes.

Ela impede que scripts executados em uma página web possam acessar ou manipular dados de outra página se as duas não tiverem a mesma origem — isto é, o mesmo protocolo, host e porta.

Essa política é um dos principais mecanismos de defesa do navegador contra ataques como XSS (Cross-Site Scripting) e CSRF (Cross-Site Request Forgery).

Origem = protocolo + domínio + porta
Ex: https://programicio.com:443

Objetivos da Same-Origin Policy

  • Proteger dados sensíveis do usuário contra acesso indevido.
  • Isolar contextos de execução de scripts entre sites diferentes.
  • Impedir que páginas maliciosas leiam ou modifiquem dados de outras aplicações.
  • Reduzir a superfície de ataques baseados em navegador, como roubo de sessões.

Exemplo prático — Acesso bloqueado entre origens

Considere o seguinte código:

// Página hospedada em https://app1.exemplo.com
const conteudo = document.getElementById("iframe-externo").contentWindow.document;

Se o iframe estiver carregando uma página de https://app2.exemplo.com, o navegador bloqueará o acesso com um erro semelhante a:

Blocked a frame with origin "https://app1.exemplo.com" from accessing a cross-origin frame.

Isso ocorre porque, embora compartilhem o domínio base, app1.exemplo.com e app2.exemplo.com são origens diferentes por serem subdomínios distintos.

O ciclo da Same-Origin Policy

[Usuário acessa um site]
        ↓
[Scripts são carregados de uma origem específica]
        ↓
[Scripts tentam acessar dados de outra origem]
        ↓
[Navegador verifica a origem e bloqueia a interação se forem diferentes]

Essa política afeta principalmente:

  • Acesso ao DOM de iframes de outros domínios

  • Leitura de respostas de fetch ou XMLHttpRequest

  • Compartilhamento de cookies e localStorage

  • Requisições AJAX entre domínios diferentes

Quando é necessário compartilhar dados entre origens diferentes de forma controlada, utiliza-se CORS (Cross-Origin Resource Sharing), que define permissões explícitas entre domínios.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com