O que é o acesso à rede privada?
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 falsificação de solicitações entre sites (CSRF, na sigla em inglês). O Chrome vem implementando a PNA gradualmente, e a proteção será expandida 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 (aplicadas 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 das solicitações de recursos secundários de rede privada para verificar as permissões do servidor. Os avisos no DevTools para falhas desde o Chrome 104 a serem aplicados no Chrome 130. Isso foi descrito em Acesso à rede privada: introdução às 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 à PNA. - Isenções de mesma origem: desde o Chrome 115, as solicitações de mesma origem de origens possivelmente confiáveis estão isentas de 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 e simulações seguros 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 delas em ataques CSRF. O Chrome 123 começou a mostrar avisos de falhas, com aplicação planejada para o Chrome 130.
A partir do Chrome 124, você pode testar a aplicação das seguintes formas:
- 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 veem um erro específico com a opção de atualizar manualmente e permitir a solicitação.
O que fazer se seu 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: provisoriamente a partir do Chrome 126, a PNA abrange os handshakes do WebSocket (avisos primeiro).
- Aplicação total: todas as restrições da PNA serão aplicadas (bloqueio de solicitações não compatíveis) provisoriamente 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ê hospeda um site em uma rede privada que precisa de solicitações de redes públicas, a equipe do Chrome quer saber sua opinião. Registre um problema no Rastreador de problemas do Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
Foto de Jakub Żerdzicki no Unsplash