Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
¿Cómo detecto el verdadero núcleo del navegador usando JavaScript?

Sé que puede detectar el navegador con navigator.userAgent, pero ¿cómo puedo detectar el verdadero núcleo del navegador que alguien está usando JavaScript para evitar la suplantación de identidad, como se muestra aquí ?

No pude resolverlo buscándolo, siguió intentando mostrar cómo usar navigator.userAgent en su lugar.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esta publicación de Reddit afirma que lo hace mediante la prueba de la funcionalidad del navegador, que es la forma en que evita el agente de usuario. ¡Vamos a profundizar en la fuente!

Lamentablemente, está bastante bien ofuscado. Lo intentaré independientemente. Una búsqueda rápida de "núcleo del navegador" produce este div:

 <div id="psanh" class="azylh"> <div id="vvwzm" class="tlgfj">True Browser Core:</div> <div class="awysa">Unknown</div> <div id="ntnfh" class="uaujg">Chrome</div> <div class="xnzgd"> i <span class="zcgki"> Supports detecting true browser core even if the browser is spoofed, for:<br /> Firefox, Chrome, Edge, Internet Explorer, Safari, Opera, Konqueror. </span> </div> </div>

Podemos usar eso. Veamos dónde pusieron ntnfh .

Es una línea que dice (ID("ntnfh").innerHTML = "" !== m ? m : n); *. Eso significa establecer ntnfh en m si m no es una cadena vacía. Veamos cuánto es m . Anteriormente, tenemos var m = ""; seguido de algo útil:

 var m = ""; try { "" === m && "undefined" != typeof InstallTrigger && (m = "Firefox"); } catch (e) {} try { "" === m && g.chrome && (g.chrome.webstore || g.chrome.runtime) && (m = "Chrome"); } catch (e) {} try { "" === m && M.documentMode && (m = "Internet Explorer"); } catch (e) {} try { "" === m && "Internet Explorer" !== m && g.StyleMedia && (m = "Edge"); } catch (e) {} try { "" !== m || (!/constructor/i.test(g.HTMLElement) && "[object SafariRemoteNotification]" !== (!window.safari || safari.pushNotification).toString()) || (m = "Safari"); } catch (e) {} try { "" === m && ((g.opr && opr.addons) || g.opera) && (m = "Opera"); } catch (e) {}

Eso es difícil de leer. Pero la esencia de esto es que probamos cosas exclusivas del navegador. Por ejemplo, en Chrome, podemos verificar la tienda web y el tiempo de ejecución de Chrome. Tenga en cuenta que && (m = "Chrome") establece m en "Chrome" . Es una manera bastante fea de escribirlo. Pero básicamente dice que si las cosas anteriores en esa línea son verdaderas, entonces configure m en Chrome . Es una forma fea de escribirlo, pero funciona debido a la evaluación de izquierda a derecha y al hecho de que un and tiene que evaluar todo para asegurarse de que el resultado sea verdadero (es decir, si es falso, devolverá falso antes , sin llegar nunca a la tarea).

Pero la esencia es verificar las propiedades específicas del navegador y establecer la variable m (el True Browser Core) en el navegador adivinado en función de las propiedades.

*He ejecutado la página a través de un formateador de código ( prettier ) para que sea más fácil de leer

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda