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

297
Visualizações
¿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 Respostas
Responde à pergunta

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 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