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!
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:
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.