Teste de origem da solicitação da permissão de acesso à rede privada: um caminho para migrar sites com HTTPS

Yifan Luo
Yifan Luo

Contexto

O Chrome 94 introduziu um bloqueio de acesso à rede privada de sites públicos não seguros. O teste de descontinuação do acesso de rede privada de contextos não seguros revelou desafios na migração de sites afetados para HTTPS. Uma preocupação comum é a dificuldade de migrar dispositivos particulares para HTTPS, o que leva a violações de verificação de conteúdo misto.

Para resolver o problema mencionado anteriormente, uma nova solicitação de permissão está disponível em um teste de origem do Chrome 120.

Nova opção: solicitação de permissão

Ao adicionar o novo atributo targetAddressSpace como uma opção de busca, a solicitação poderá pular a verificação de conteúdo misto.

Exemplo:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

De acordo com o Acesso à rede privada: introdução de simulações, qualquer solicitação de rede privada será precedida por uma simulação de solicitação. Essa simulação de solicitação vai incluir um novo cabeçalho, Access-Control-Request-Private-Network: true, e a resposta correspondente precisa incluir o cabeçalho Access-Control-Allow-Private-Network: true.

Para acomodar a nova solicitação de permissão, exigimos que os dispositivos incorporassem dois novos cabeçalhos de resposta: Private-Network-Access-Name e Private-Network-Access-ID.

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

Exemplo:

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID: um valor de 48 bits apresentado como 6 bytes hexadecimais separados por dois pontos. Private-Network-Access-Name: um nome válido como uma string que corresponde à expressão regular ECMAScript /^[a-z0-9_-.]+$/. O comprimento máximo do nome é de 248 unidades de código UTF-8.

Demonstração

Confira a demonstração em: https://private-network-access-permission-test.glitch.me/.

Fazer inscrição em um teste de origem

Para que a solicitação de permissão de acesso à rede privada ajude os desenvolvedores a adotar restrições de contexto seguro para acesso a redes privadas, elas estão disponíveis no Chrome da versão 120 à 122 como um teste de origem.

Faça o teste de origem para permitir que seu site use a solicitação de permissão:

  1. Solicite um token para sua origem.
  2. Use o token de uma das seguintes maneiras:
    • No seu HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • No JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • Nos cabeçalhos HTTP: text Origin-Trial: TOKEN_GOES_HERE

Se você tiver feedback ou sugestões sobre esse recurso, registre um problema no repositório do GitHub.

Recursos