"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Reducción del agente de usuario en Chrome, Safari y Firefox

Reducción del agente de usuario en Chrome, Safari y Firefox

Publicado el 2024-08-06
Navegar:813

User Agent Reduction in Chrome, Safari & Firefox

Introducción: ¿Qué son la reducción de agente de usuario y las sugerencias para el cliente?

En los últimos años, las preocupaciones por la privacidad han impulsado cambios significativos en la forma en que los navegadores manejan las cadenas de User-Agent. Utilizadas tradicionalmente para identificar información del navegador y del dispositivo, las cadenas de User-Agent se han reducido para limitar la cantidad de información compartida, protegiendo así la privacidad del usuario. Para abordar las limitaciones de la reducción de User-Agent, Client Hints ha surgido como una solución, que proporciona una forma más controlada y respetuosa de la privacidad de compartir la información necesaria.

Lea la publicación completa del blog aquí

Una breve historia de las cadenas de agente de usuario

Las cadenas User-Agent se remontan a los primeros días de los navegadores web, comenzando con WorldWideWeb de Tim Berners-Lee. Inicialmente, eran sencillos y proporcionaban información básica sobre el navegador y la versión. Con el tiempo, evolucionaron para incluir datos detallados sobre el sistema operativo, el tipo de dispositivo y más, lo que resultó útil para el análisis web y la optimización de las experiencias de los usuarios. Sin embargo, este detalle también permitió la toma de huellas digitales del dispositivo, lo que generó preocupaciones sobre la privacidad.

¿Qué es la reducción de agente usuario?

La reducción de User-Agent tiene como objetivo minimizar la información en las cadenas de User-Agent para proteger la privacidad del usuario. Se reduce la información de alta entropía, como versiones específicas del sistema operativo y modelos de hardware. Por ejemplo, Chrome de Google ahora informa una cadena User-Agent menos detallada:

  • Antes: Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/95.2.1.0 Mobile Safari/537.36
  • Después: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

De manera similar, Firefox y Safari han implementado sus propias versiones de reducción de User-Agent, aunque con ligeras diferencias basadas en sus políticas únicas.

¿Cómo funcionan las sugerencias para el cliente?

Las sugerencias para el cliente brindan una forma de solicitar información específica de alta entropía sobre el dispositivo y el navegador del usuario de manera consciente de la privacidad. Hay dos métodos principales para acceder a las sugerencias del cliente:

  1. Encabezados de solicitud HTTP: Los sitios web pueden solicitar información específica sobre el navegador y el dispositivo del usuario mediante encabezados de solicitud HTTP. Esto generalmente se usa en contextos propios, lo que garantiza que solo se pueda acceder a la información detallada del usuario en el sitio web principal, no en recursos de terceros.
  2. API de JavaScript: También se puede acceder a las sugerencias del cliente a través del objeto navigator.userAgentData dentro de JavaScript. Esto permite consultas dinámicas de información específica, como arquitectura, modelo y versión de plataforma, sin establecer encabezados adicionales.

Implementación de sugerencias para el cliente

Uso de encabezados de solicitud HTTP

Para implementar sugerencias de cliente a través de encabezados HTTP, el servidor debe configurar los encabezados apropiados en la respuesta HTTP, indicando al navegador que incluya estas sugerencias en solicitudes futuras. Por ejemplo:

Accept-CH: Sec-CH-UA-Platform-Version

Las solicitudes posteriores del navegador incluirán la versión de la plataforma:

Sec-CH-UA-Platform-Version: "14.5.0"

Usando la API de JavaScript

Para aplicaciones dinámicas, la API de JavaScript proporciona flexibilidad. Por ejemplo, usando el método getHighEntropyValues:

if (navigator.userAgentData) {
    navigator.userAgentData.getHighEntropyValues(['architecture', 'model', 'platformVersion'])
        .then(ua => {
            console.log(ua);
        });
}

Recomendaciones para desarrolladores

Dependiendo de tus necesidades específicas, puedes elegir diferentes métodos para recopilar datos del entorno del usuario:

  • Detección de funciones: Utilice las API de JavaScript del navegador existente siempre que sea posible. Esto es más confiable y está preparado para el futuro que depender de cadenas de User-Agent.
  • Información de baja entropía: Para detalles básicos como el tipo de dispositivo, la cadena User-Agent aún puede ser suficiente.
  • Información de alta entropía: Utilice las sugerencias del cliente si necesita información detallada y tiene control sobre el dominio.

Conclusión

La reducción del agente de usuario y las sugerencias para el cliente representan pasos importantes para mejorar la privacidad del usuario y al mismo tiempo permitir que los sitios web recopilen la información necesaria para una funcionalidad óptima. Al comprender e implementar estas tecnologías, los desarrolladores pueden equilibrar la necesidad de datos detallados del usuario con consideraciones de privacidad y rendimiento.

Obtenga más información en nuestra publicación de blog detallada.

Declaración de liberación Este artículo se reproduce en: https://dev.to/corbado/user-agent-reduction-in-chrome-safari-firefox-3g6g?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3