"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 > Comprender la desobfuscación de JavaScript en el raspado web

Comprender la desobfuscación de JavaScript en el raspado web

Publicado el 2025-03-25
Navegar:884

Understanding JavaScript Deobfuscation in Web Scraping

El raspado web a menudo implica extraer datos de los sitios web, pero puede ser un desafío en muchos casos. Es posible que los datos que necesita no sean directamente accesibles debido a las técnicas de ofuscación utilizadas por los sitios web.

JavaScript Obfuscation , en particular, es un método utilizado para hacer que el proceso de raspado sea más difícil usando JavaScript.

En este artículo, discutiremos la desobfuscación de JavaScript, por qué importa en el raspado web y cómo manejarlo.

¿Qué es la ofuscación de JavaScript en el raspado web?

JavaScript Obfuscation es una técnica para hacer que el código sea más difícil de interpretar por humanos o herramientas automatizadas. Los sitios web a menudo ofuscan a JavaScript para proteger sus datos o obstaculizar los intentos de raspado web.

Las técnicas de ofuscación comunes pueden involucrar:

  • cambiando los nombres de variables y funciones : los nombres de variables y funciones se renombran a cadenas aleatorias como A1, B2 y así sucesivamente, lo que dificulta comprender su propósito.

  • codificando datos : Strings, URLS o datos confidenciales están encriptados o codificados usando Base64 u otros métodos de codificación.

  • Flow Obfuscation : el orden de ejecución del código se puede alterar para dificultar la lógica y el flujo del programa.

  • Dead Code Insertion : se agrega código irrelevante o inalcanzable para aumentar la complejidad y el tamaño del script.

  • minificación : se eliminan el espacio en blanco innecesario y se eliminan los comentarios para reducir la legibilidad y reducir el tamaño del código.

  • Function Wraping and Indirection : las funciones importantes se envuelven en múltiples capas o se ejecutan a través de llamadas indirectas para agregar complejidad y ocultar su verdadero propósito.

Aquí hay un simple ejemplo de obfuscación de JavaScript:

Código JS original:

let productPrice = 29.99;
let productName = "Wireless Mouse";

function displayProductInfo() {
    console.log("Product Name: "   productName);
    console.log("Price: $"   productPrice);
}

displayProductInfo();

Código JS ofuscado:

var _0x1a2b3c = ["\x57\x69\x72\x65\x6C\x65\x73\x73\x20\x4D\x6F\x75\x73\x65", "\x4C\x65\x74\x20\x70\x72\x6F\x64\x75\x63\x74\x50\x72\x69\x63\x65", "\x24"];
let _0x4c3b1a = 29.99;
let _0x6d24f5 = "Wireless Mouse";

function _0x44a5bc() {
    console[_0x1a2b3c[1]](_0x1a2b3c[0]   _0x6d24f5);
    console[_0x1a2b3c[1]](_0x1a2b3c[2]   _0x4c3b1a);
}

_0x44a5bc();

El código JavaScript también puede alterar solicitudes, cargar datos adicionales o administrar cómo se pobla el DOM (modelo de objeto de documento) , lo que dificulta la rastrear.

Aquí es donde entra JavaScript Deobfuscation!

¿Por qué es importante la desobfuscación de JavaScript?

deobfuscation es esencial porque muchos sitios web dependen de técnicas de ofuscación para evitar el desguace. Para evitar estas defensas, los raspadores web deben revertir el proceso de ofuscación. Sin desobfuscación, los raspadores pueden perder información crucial o luchar para interactuar con elementos dinámicos correctamente.

En el contexto del raspado, la comprensión de JavaScript Deobfuscation le permite:

  • extraer datos ocultos o cargados dinámicamente : la deobfuscation ayuda a revelar datos almacenados en variables de JavaScript, cadenas codificadas o HTML generado dinámicamente, como precios de productos, niveles de existencias o revisiones de usuarios.

  • interactúa con el código JavaScript ofuscado : al revertir las técnicas de ofuscación, puede comprender mejor e interactuar con el código JavaScript complejo para acceder al contenido que de otra manera está oculto o manipulado.

  • omitir medidas anti-cepillado : deobfuscation ayuda a superar los mecanismos anti-cepillado basados ​​en JavaScript como Captchas, limitando la velocidad o las huellas dactilares del navegador, permitiendo que los raspadores imiten el comportamiento humano y el desvío de estas defensas

¿Cómo funciona JavaScript Deobfuscation?

JavaScript Deobfuscation se refiere al proceso de interpretación o invertir el código de JavaScript obfisco para revelar su funcionalidad original.

Aquí están algunos de los enfoques comunes para desobfuscar javascript:

  • inspección manual : revisar el código JavaScript para identificar patrones y decodificar elementos ofuscados puede ser efectivo, pero a menudo es intensivo en el tiempo y exige una sólida comprensión de JavaScript.

  • automatizado Deobfuscators : herramientas como JSDETOX o DE4JS puede ayudarlo a automatizar el proceso detectando los patrones de ofuscación comunes y ayudarlo a revertirlos en un código más legible.

  • herramientas de depuración : los desarrolladores de raspado web pueden usar herramientas de desarrollador de navegador para atravesar el código JavaScript y observar su ejecución. Esto ayuda a rastrear cómo el script manipula la página o se comunica con el servidor.

  • beautifiers : estas herramientas formatan código ofuscado para hacerlo más legible, que a menudo es el primer paso antes de aplicar técnicas de desobfuscación más complejas.

Soluciones para lidiar con JavaScript ofnel

  • navegadores sin cabeza : herramientas como Puppeteer o dramaturgo ayudan a tratar con sitios web de JavaScript-Heavy. Estos navegadores sin cabeza pueden ejecutar JavaScript y permitir que los raspadores interactúen con la página como si fueran un usuario real, ayudando a evitar técnicas complejas de ofuscación.

  • CloudFlare shoTarounds : algunos sitios web usan CloudFlare para proteger contra el raspado. Los raspadores pueden evitar la protección contra el botón de Cloudflare girando los encabezados de agente de usuario o resolviendo desafíos de JavaScript. Lo más común es el desafío CloudFlare JS.

  • Dynamic Data Scraping : muchas herramientas de raspado están diseñadas para replicar el comportamiento del usuario en los sitios web pesados ​​de JavaScript, lo que les permite interactuar con elementos como botones o desplegables para cargar contenido dinámico.

Conclusión

JavaScript Deobfuscation es crucial en el raspado web, lo que le permite evitar técnicas de ofuscación y acceder a los datos necesarios. Mientras que la desobfuscación manual puede llevar mucho tiempo, las herramientas automatizadas y los navegadores sin cabeza hacen que el proceso sea más eficiente.

Declaración de liberación Este artículo se reproduce en: https://dev.to/pragativema18/understanding-javascript-deobfuscation-in-web-scraping-5c2f?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarlo.
Ú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