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 un nuevo mensaje de permiso disponible en una prueba de origen 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 del 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 preliminar incluirá un nuevo encabezado, Access-Control-Request-Private-Network: true
, y la respuesta correspondiente debe incluir el encabezado Access-Control-Allow-Private-Network: true
.
Para adaptar la nueva solicitud de permiso, exigimos que los dispositivos incorporaran 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 de ECMAScript /^[a-z0-9_-.]+$/
. 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 redes privadas ayude a los desarrolladores a adoptar restricciones de contexto seguro para el acceso a redes privadas, estarán disponibles en Chrome de la versión 120 a la 122 como 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 archivo 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 archivo HTML:
Si tienes comentarios o sugerencias sobre esta función, informa un problema en el repositorio de GitHub.