Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

200
Visualizações
Desafío para identificar de forma única una computadora desde cualquiera de sus navegadores

En una aplicación web HTML5, estoy creando una función que se basa en la comunicación de cliente a cliente (con empujador). Está hecho de PHP en el lado del servidor y Javascript con Vue en el lado del cliente.

El escenario típico es: se abre una ventana emergente y desde allí se comunica directamente con otras ventanas abiertas en cualquier otro navegador en la misma computadora. Digamos que tiene 2 navegadores instalados, abre la ventana emergente de la aplicación web con Firefox y se comunica con su página hermana de la aplicación web que abrió anteriormente en Chrome.

La única forma (a medias) que hemos encontrado hasta ahora es usar la dirección IP pública para construir un canal privado nombrado con la dirección IP... Es básico y eficiente.

Sin embargo, si hay más de 1 computadora conectada al mismo enrutador, todas compartirán la misma IP pública, ¡y ahí es donde las cosas se vuelven difíciles!

Una solución podría ser agregar la IP local de la computadora al nombre del canal (que ya se creó con la IP pública), pero a pesar de algunas buenas soluciones que encontré para obtener esta información de una conexión RTC iniciada, esto parece bastante poco confiable y a menudo pasa contra las reglas de privacidad de los navegadores…

Obviamente, no puedo usar información de sesión con PHP en el lado del servidor, ni cookies/almacenamiento local en el lado del cliente, ya que todas esas soluciones están estrechamente relacionadas con el navegador (gracias a Dios, Chrome no compartirá sus cookies con Firefox en tu computadora). Esas soluciones serían perfectas (y sin necesidad de un empujador) si estuviéramos usando 1 solo navegador, pero necesitamos manejar múltiples navegadores en la misma máquina.

Ahí es donde me pregunto si alguien ya se habría enfrentado a este desafío de diseño y compartido algunos consejos, ¡sería increíble! ¡Gracias por leer hasta ahora!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  • Puede comprobar el agente de usuario del navegador.
  • Puede verificar una combinación de los encabezados de solicitud provenientes de diferentes navegadores.
  • Puede lanzar y detectar explícitamente un error en el navegador del usuario y enviarlo en el encabezado/cuerpo de la solicitud para determinar qué navegador está usando.
  • Puede hacer dibujos de lienzo para ver la información de GPU/CPU del usuario (dado que ya está usando html5, eso es una ventaja).
  • Puede usar webgl directamente para hacer lo mismo con métricas quizás diferentes (ya que canvas usa webgl de todos modos).
  • Puede verificar su velocidad de escritura o incluso crear un perfil de su vocabulario y uso del idioma.
  • Si solicita permisos, puede ver todos sus dispositivos de medios conectados, como auriculares, incluso si solicita permisos de audio, se los mostrará a todos.
  • Puede comparar su CPU con cosas como el tiempo que lleva encontrar números primos o cifrar una clave.
  • Puede usar huellas dactilares de audio, que es casi tan única como su voz, ya que cada navegador y arquitectura de CPU difieren ligeramente en el patrón digital y las oscilaciones creadas a partir del audio, que se pueden capturar.
  • Puede verificar el tamaño de su ventana y el tamaño de la pantalla y la resolución de la pantalla.
  • Probablemente hay incluso más en los que no pensé ahora, también puede usar cualquiera de ellos en combinación para tomar las huellas dactilares de un dispositivo.

Para obtener más información, investigue el rastreo del navegador y la toma de huellas dactilares digitales. Lo que es más, es que puede identificar de manera única al usuario en sus propios navegadores en la misma computadora y también a diferentes usuarios de diferentes dispositivos usando una combinación de rastreo de navegador/huella digital.

En su caso específico, no puede usar todas las técnicas de rastreo del navegador, pero aún puede usar algunas de ellas, como el agente de usuario, ya que aún le dará la información del dispositivo del usuario incluso si está usando un navegador diferente.

La idea con las huellas dactilares digitales es que usted quiere construir una probabilidad lo suficientemente alta como para estar bastante seguro de que es el mismo usuario, nunca puede estar realmente seguro, pero lo suficientemente seguro. Algo así como el tamaño de la pantalla no significa mucho por sí mismo, hay millones de dispositivos que usan, por ejemplo, una pantalla de tamaño 1600, sin embargo, considere el siguiente ejemplo hipotético:

  • El dispositivo del usuario tiene un tamaño de pantalla de 1600, es decir, ~1/8 usuarios.
  • El dispositivo del usuario tardó 20 ms en cifrar una clave 4096, es decir, ~1/8 usuarios.
  • El dispositivo del usuario tardó 40 ms en dibujar una imagen de lienzo, es decir, 1/8 de usuarios.

Ahora ya tiene una probabilidad de 8 * 8 * 8 = 1/512 de saber qué usuario es y ese valor aumenta mucho más rápidamente, basado en 3 cosas fundamentalmente no identificables.

Sin embargo, debe tenerse en cuenta que el uso de cualquier técnica de detección de navegador o huella digital como la anterior está sujeta a las normas de privacidad (al menos en algunos países). Muchas cosas como el agente de usuario están en desuso y si haces cosas como esta en un sitio, tendrás problemas con cosas como GDPR. Creo que puede evitarlo si le solicita explícitamente al usuario su permiso y le informa que, es decir, se está tomando la huella digital de su navegador. Sin embargo, debe tener cuidado porque hacer esto puede causarle problemas si es malicioso, hacer cosas como esta sin el conocimiento del usuario no es ético.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda