Acesso à rede particular: proteção estendida para Web workers e buscas de navegação

Jonathan Hao
Jonathan Hao

O que é o acesso à rede particular?

O acesso a redes privadas (PNA, anteriormente conhecido como CORS-RFC1918 e brevemente como acesso a rede local) é um recurso de segurança que restringe a capacidade dos sites de enviar solicitações para servidores em redes privadas. Isso ajuda a proteger os usuários e as redes internas contra possíveis ataques, como a falsificação de solicitações entre sites (CSRF). O Chrome vem implementando a PNA gradualmente, e a proteção será ampliada nas próximas versões.

Principais proteções de PNA (com o status atual)

  • Contextos seguros: apenas contextos seguros podem fazer solicitações de sub-recursos de rede particular (a partir do Chrome 94). Consulte a postagem de atualização do Acesso à rede privada para mais detalhes.
  • Solicitações de pré-voo: o Chrome envia solicitações de pré-voo antes das solicitações de sub-recursos de rede privada para verificar as permissões do servidor (alertas no DevTools para falhas desde o Chrome 104, que serão aplicados no Chrome 130). Isso foi descrito em Acesso à rede privada: introdução às simulações. A partir do Chrome 123, o Chrome vai omitir alguns cabeçalhos CORS, como Accept, se a simulação for criada e enviada apenas devido à PNA.
  • Isenções de mesma origem: desde o Chrome 115, as solicitações de mesma origem de origens potencialmente confiáveis estão isentas das restrições de PNA.

Proteção estendida: workers da Web

A proteção de PNA será estendida aos workers da Web (workers dedicados, compartilhados e de serviço). Isso inclui:

  • Buscar scripts de worker: requer contextos seguros e preflights para endereços IP menos públicos. Avisos desde o Chrome 110, que serão aplicados no Chrome 130.
  • Buscas iniciadas por scripts de worker: todas as buscas em scripts de worker seguem as mesmas regras de PNA.

A partir do Chrome 124, é possível testar a aplicação seguindo estas etapas:

  • Desativar chrome://flags/#private-network-access-ignore-worker-errors
  • Ativar chrome://flags/#private-network-access-respect-preflight-results

Proteção estendida: buscas de navegação

A PNA também se aplica a buscas de navegação (iframes, pop-ups) devido ao possível uso em ataques CSRF. O Chrome 123 começou a mostrar avisos de falhas, com a aplicação planejada para o Chrome 130.

A partir do Chrome 124, você pode testar a aplicação fazendo o seguinte:

  • Desativar chrome://flags/#private-network-access-ignore-navigation-errors
  • Ativar chrome://flags/#private-network-access-respect-preflight-results

Quando a PNA bloqueia uma solicitação de navegação, os usuários recebem um erro específico com a opção de recarregar manualmente e permitir a solicitação.

Quando a PNA bloqueia uma solicitação de navegação, os usuários recebem um erro específico com a opção de recarregar manualmente e permitir a solicitação.
Quando o PNA bloqueia uma solicitação de navegação, os usuários recebem um erro específico com a opção de recarregar manualmente e permitir a solicitação.

O que fazer se o site for afetado?

A postagem Acesso à rede privada: introdução às simulações inclui orientações. Importante: para solicitações de navegação:

  • Access-Control-Allow-Origin não pode ser um caractere curinga ("*").
  • Access-Control-Allow-Credentials precisa ser definido como "true".

A seguir

  • WebSockets: a partir do Chrome 126, o PNA vai abranger os handshakes do WebSocket (primeiro os avisos).
  • Aplicação total: todas as restrições de PNA serão aplicadas (bloqueando solicitações não em conformidade) de forma provisória no Chrome 130. Os usuários vão ter uma configuração de site para substituir a PNA em sites confiáveis.

Feedback para casos de uso de rede privada

Se você hospedar um site em uma rede privada que precisa de solicitações de redes públicas, a equipe do Chrome quer seu feedback. Registre um problema no Rastreador de problemas do Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto de Jakub Żerdzicki no Unsplash