O que é o Acesso à rede privada?
O acesso à rede privada (PNA, anteriormente conhecido como CORS-RFC1918 e, brevemente, acesso à 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 falsificação de solicitações entre sites (CSRF, na sigla em inglês). O Chrome vem implementando o 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 têm permissão para fazer solicitações de recursos de rede privada (aplicada a partir do Chrome 94). Consulte nossa postagem de atualização do Acesso à rede privada para mais detalhes.
- Solicitações de simulação: o Chrome envia solicitações de simulação antes de solicitações de recursos secundários de rede particular para verificar as permissões do servidor. Os avisos no DevTools para falhas desde o Chrome 104 serão aplicados no Chrome 130. Isso foi descrito em Acesso à rede privada: introdução de simulações. Desde o Chrome 123, o Chrome vai omitir alguns cabeçalhos CORS, como
Accept
, se a simulação for criada e enviada apenas devido ao PNA. - Isenções de mesma origem: desde o Chrome 115, as solicitações da mesma origem com origens potencialmente confiáveis estão isentas de restrições da PNA.
Proteção estendida: Web workers
A proteção do PNA será estendida aos Web workers (trabalhadores dedicados, compartilhados e service workers). Isso inclui:
- Buscar scripts de worker: requer contextos seguros e simulações 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, siga estas etapas para testar a aplicação:
- 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 dela em ataques CSRF. O Chrome 123 começou a mostrar avisos sobre falhas, com aplicação planejada para o Chrome 130.
A partir do Chrome 124, é possível testar a aplicação da seguinte forma:
- Desativar
chrome://flags/#private-network-access-ignore-navigation-errors
- Ativar
chrome://flags/#private-network-access-respect-preflight-results
Quando o PNA bloqueia uma solicitação de navegação, os usuários veem um erro específico com a opção de atualizar manualmente e permitir a solicitação.
O que fazer se o site for afetado?
A postagem Acesso à rede privada: introdução de simulações inclui orientações. É importante ressaltar que, 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"
.
Qual é a próxima etapa?
- WebSockets: temporariamente a partir do Chrome 126, a PNA cobrirá handshakes de WebSocket (avisos primeiro).
- Aplicação total: todas as restrições da PNA serão aplicadas (bloqueando solicitações incompatíveis) temporariamente no Chrome 130. Os usuários terão uma configuração de site para substituir o PNA em sites confiáveis.
Feedback para casos de uso de rede privada
Se você hospeda 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 Issue Tracker do Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
Fotografia por Jakub nerdzicki no Unsplash (links em inglês)