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

Segundo plano

Chrome 94 introdujo un bloqueo del acceso a la red privada desde sitios web públicos no seguros. La prueba de baja del acceso a red privada desde contextos no seguros en curso reveló 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 infracciones de verificación de contenido mixto.

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

Mensaje de permiso como 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 las solicitudes preliminares, cualquier solicitud de red privada irá precedida de una solicitud preliminar. Esta solicitud de comprobación previa incluirá un encabezado nuevo, Access-Control-Request-Private-Network: true, y la respuesta correspondiente debe incluir el encabezado Access-Control-Allow-Private-Network: true.

Para admitir el nuevo mensaje de permiso, exigimos que los dispositivos incorporen 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 una cadena que coincide con la expresión regular /^[a-z0-9_-.]+$/ de ECMAScript. La longitud máxima del nombre es de 248 unidades de código UTF-8.

Demostración

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

Regístrate para obtener una prueba de origen

Para garantizar que el mensaje de permiso de acceso a la red privada ayude a los desarrolladores a adoptar restricciones de contexto seguras para el acceso a la red privada, lo ponemos a disposición en Chrome desde la versión 120 a la 122 como una prueba de origen.

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

  1. Solicita un token para tu origen.
  2. Usa el token de una de las siguientes maneras:
    • En tu código HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • En tu código 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