Prueba de origen del mensaje de permiso de acceso a la red privada: Una ruta para migrar sitios web con HTTPS

Yifan Luo
Yifan Luo

Información general

Chrome 94 introdujo un bloqueo en el acceso a redes privadas desde sitios web públicos no seguros. La prueba de baja del Acceso a la red privada desde contextos no seguros reveló algunos desafíos para migrar los sitios web afectados a HTTPS. Una preocupación común es la dificultad de migrar dispositivos privados a HTTPS, lo que genera incumplimientos de la verificación de contenido mixto.

Para abordar el desafío mencionado anteriormente, hay un nuevo mensaje de permiso disponible en una prueba de origen de Chrome 120.

Mensaje de permiso como la nueva opción

Si agregas el nuevo atributo targetAddressSpace como opción de recuperación, la solicitud podrá omitir la verificación de contenido mixto.

Ejemplo:

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

De acuerdo con Acceso a redes privadas: presentación de comprobaciones preliminares, cualquier solicitud de red privada estará precedida por una solicitud de comprobación previa. Esta solicitud preliminar incluirá un encabezado nuevo, Access-Control-Request-Private-Network: true, y la respuesta correspondiente deberá incluir el encabezado Access-Control-Allow-Private-Network: true.

Para adaptarse a la nueva solicitud de permiso, los dispositivos deben incorporar dos encabezados de respuesta nuevos: Private-Network-Access-Name y Private-Network-Access-ID.

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

Ejemplo:

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

Private-Network-Access-ID: Es un valor de 48 bits presentado como 6 bytes hexadecimales separados por dos puntos. Private-Network-Access-Name: Es un nombre válido como string que coincide con la expresión regular de ECMAScript /^[a-z0-9_-.]+$/. La longitud máxima del nombre es de 248 unidades de código UTF-8.

Demostración

Puedes revisar la demostración en https://private-network-access-permission-test.glitch.me/.

Registrarse para una prueba de origen

Para garantizar que la solicitud de permiso de acceso a la red privada ayude a los desarrolladores a adoptar restricciones de contexto seguro para el acceso a redes privadas, las pondremos a disposición de las versiones 120 a 122 en Chrome como prueba de origen.

Regístrate en la prueba de origen para permitir que tu sitio web use la solicitud de permiso:

  1. Solicita un token para tu origen.
  2. Usa el token de una de las siguientes maneras:
    • En el archivo HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • En tu JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • En los encabezados HTTP: text Origin-Trial: TOKEN_GOES_HERE

Si tienes comentarios o sugerencias sobre esta función, informa un problema en el repositorio de GitHub.

Recursos