Skip to content
Aprender Medir Blog Case studies Sobre
Nesta página
  • Origem
    • "mesma origem" e "origem cruzada"
  • Site
    • "mesmo site" e "vários sites"
    • "schemeful same-site"
  • Como verificar se uma solicitação é de "mesmo site", "mesma origem" ou "vários sites"

Entenda os termos "mesmo site" e "mesma origem"

Apr 14, 2020 — Atualizado Jun 10, 2020
Available in: Español, 日本語, 한국어, Русский, 中文, English
Appears in: Seguro e protegido
Eiji Kitamura
Eiji Kitamura
TwitterGitHubHomepage
Nesta página
  • Origem
    • "mesma origem" e "origem cruzada"
  • Site
    • "mesmo site" e "vários sites"
    • "schemeful same-site"
  • Como verificar se uma solicitação é de "mesmo site", "mesma origem" ou "vários sites"

Os termos "mesmo site" (same-site) e "mesma origem" (same-origin) são citados com frequência, mas muitas vezes mal interpretados. Por exemplo, eles são mencionados no contexto de transições de página, solicitações de fetch(), cookies, abertura de pop-ups, recursos incorporados e iframes.

Origem #

Origem

A "origem" é a combinação de um esquema (também conhecido como protocolo, por exemplo, HTTP ou HTTPS), um nome de host e uma porta (se especificada). Por exemplo, no URL https://www.example.com:443/foo, a "origem" é https://www.example.com:443.

"mesma origem" e "origem cruzada" #

Os sites que possuem a mesma combinação de esquema, nome de host e porta são considerados de "mesma origem". Todos os outros são considerados de "origem cruzada" (cross-origin).

Origem AOrigem BClassificação da Origem A e B em "mesma origem" ou "origem cruzada" e justificativa
https://www.example.com:443https: // www.evil.com : 443origem cruzada: domínios diferentes
https://example.com:443origem cruzada: subdomínios diferentes
https://login .example.com:443origem cruzada: subdomínios diferentes
http://www.example.com:443origem cruzada: esquemas diferentes
https://www.example.com:80origem cruzada: portas diferentes
https://www.example.com:443mesma origem: correspondência exata
https://www.example.commesma origem: correspondência do número de porta implícito (443)

Site #

Site

Os domínios de nível superior (TLDs), como .com e .org, estão listados em Root Zone Database. No exemplo acima, "site" é a combinação do TLD e da parte do domínio que o precede. Por exemplo, no URL https://www.example.com:443/foo, o "site" é example.com.

No entanto, para domínios como .co.jp ou .github.io, usar apenas o TLD de .jp ou .io não é detalhado o suficiente para identificar o "site". Além disso, não há como determinar algoritmicamente o nível de domínios registráveis para um determinado TLD. É por isso que uma lista de "TLDs efetivos" (eTLDs) foi criada. Eles são definidos na Public Suffix List (Lista Pública de Sufixos). A lista de eTLDs está disponível em publicsuffix.org/list.

O nome completo do site é o eTLD+1. Por exemplo, no URL https://my-project.github.io, o eTLD é .github.io e o eTLD+1 é my-project.github.io, que é considerado um "site". Em outras palavras, o eTLD+1 é o TLD efetivo e a parte do domínio que o precede.

eTLD+1

"mesmo site" e "vários sites" #

Os sites com o mesmo eTLD+1 são considerados o "mesmo site", enquanto aqueles com eTLD+1 diferentes são "vários sites" (cross-site).

Origem AOrigem BClassificação da Origem A e B em "mesmo site" ou "vários sites" e justificativa
https://www.example.com:443https://www.evil.com:443vários sites: domínios diferentes
https://login.example.com:443mesmo site: os subdomínios diferentes não importam
http://www.example.com:443mesmo site: os esquemas diferentes não importam
https://www.example.com:
80
mesmo site: as portas diferentes não importam
https://www.example.com:443mesmo site: correspondência exata
https://www.example.commesmo site: as portas não importam

"schemeful same-site" #

schemeful same-site

A definição de "mesmo site" está evoluindo ao considerar o esquema de URL como parte do site, a fim de evitar que o HTTP seja usado como um canal fraco. À medida que os navegadores mudam para essa interpretação, talvez você veja referências a "scheme-less same-site", relacionadas à definição mais antiga, e "schemeful same-site", relacionadas à definição mais estrita. Nesse caso, http://www.example.com e https://www.example.com são considerados vários sites porque os esquemas não correspondem.

Origem AOrigem BClassificação da Origem A e B em "schemeful same-site" ou "vários sites" e justificativa
https://www.example.com:443https://www.evil.com:443vários sites: domínios diferentes
https://login.example.com:443schemeful same-site: os subdomínios diferentes não importam
http://www.example.com:443vários sites: esquemas diferentes
https://www.example.com:80schemeful same-site: as portas diferentes não importam
https://www.example.com:443schemeful same-site: correspondência exata
https://www.example.comschemeful same-site: as portas não importam

Como verificar se uma solicitação é de "mesmo site", "mesma origem" ou "vários sites" #

O Chrome envia solicitações junto com um cabeçalho HTTP Sec-Fetch-Site. Nenhum outro navegador é compatível com Sec-Fetch-Site desde abril de 2020. Isso faz parte de uma proposta mais ampla de Cabeçalhos de Solicitação de Metadados Fetch (Fetch Metadata Request Headers). O cabeçalho terá um dos seguintes valores:

  • cross-site
  • same-site
  • same-origin
  • none

Ao examinar o valor de Sec-Fetch-Site, é possível determinar se a solicitação é de "mesmo site", "mesma origem" ou "vários sites" ("schemeful-same-site" não é capturado em Sec-Fetch-Site).

Segurança
Last updated: Jun 10, 2020 — Improve article
Return to all articles
Compartilhar
assinar

Contribute

  • Registrar um bug
  • Visualizar código-fonte

Conteúdo relacionado

  • developer.chrome.com
  • Atualizações do Chrome
  • Web Fundamentals
  • Estudos de caso
  • Podcasts
  • Shows

Conectar

  • Twitter
  • YouTube
  • Google Developers
  • Chrome
  • Firebase
  • Google Cloud Platform
  • Todos os produtos
  • Termos e privacidade
  • Diretrizes da comunidade

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies.