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:
- Solicita un token para tu origen.
- 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
- En tu código HTML:
Si tienes comentarios o sugerencias sobre esta función, informa un problema en el repositorio de GitHub.