Algoritmo Taobao ua inverso
Como todos sabemos, actualmente, cuando usas selenium para abrir un navegador para acceder a Taobao, ya sea que inicies sesión de forma manual o automática, la verificación falla. El programa anti-rastreadores de Taobao no ha sido analizado formalmente antes. Pasé varias horas analizándolo hoy y solo tengo una comprensión general, pero muchos detalles aún no están claros.
Los dos artículos sobre anti-rastreadores que escribí antes se pueden verificar en Taobao. Estos dos artículos son "La prohibición y el avance del selenio, registrando un ataque profundo a los rastreadores, pero antes de que pudiera conquistarlo, ya estaba muerto, Taobao y Meituan" y "Parámetros ua impredecibles en los rastreadores de Python, tarjeta de identificación del rastreador". Si no conoce el concepto de huella digital del navegador o identificación de visitante, puede leer estos dos artículos primero.
En resumen, la idea anti-rastreador de Taobao es utilizar el algoritmo ua basado en la identidad del usuario para identificar si el navegador es normal o anormal. Hablemos de los planes específicos a continuación.
Enviaremos una solicitud de publicación cuando se haya ingresado el nombre de usuario en la página de inicio de sesión de Taobao pero no se haya ingresado la contraseña.
Hay una información clave ua en esta solicitud de publicación, pero aún no se ha analizado cómo generar ua. Su fuente está en la ventana del objeto global [UA_Opt. LogVal] o ventana ["_n"], la salida es diferente cada vez.
El objeto de la ventana del navegador se basa en un atributo privado _n, pero el primer problema es cómo hacer que el valor de salida sea diferente cada vez.
¿De qué sirve esta solicitud de publicación después de ingresar el nombre de usuario? Esta solicitud determina si hay validación del control deslizante. Veamos cómo reacciona:
Needcode requiere validación. En el navegador abierto por webdriver, el valor de retorno debe ser verdadero, es decir, debe verificarse, pero no es estándar que Taobao rechace todas las verificaciones de selenio, así que continúe a continuación.
Continuando, cuando el código de necesidad es verdadero, Taobao tiene verificación deslizante, así que veamos la solicitud de verificación deslizante:
Hay un parámetro t, que es ua, que es Al verificar Si el control deslizante es correcto, el backend de Taobao también lo verificará para ver si es el logotipo correcto. En todos los navegadores abiertos por selenium, 'browser': {'ie': false, 'chrome': true, 'webdriver': true}, por supuesto, webdriver es un estándar de referencia clave, hay docenas de otras diferencias.
Cuando el backend de Taobao reciba la información de verificación del control deslizante, verificará ua al mismo tiempo. Todas las verificaciones con webdriver=True devolverán el código=300.
Ahora tenemos una comprensión general de la detección de selenio de Taobao: ua es generado por el algoritmo js local y contiene información del navegador e incluso la dirección actual. Cuando se ingresa la cuenta, el número de cuenta y ua se publicarán en el servidor, y el servidor utilizará algoritmos inteligentes para identificar si se trata de un sitio de inicio de sesión normal, un navegador normal o un entorno anormal. El navegador abierto por selenium es un navegador anormal. Debes regresar al control deslizante para verificar. Cuando se complete la verificación, ua y la trayectoria deslizante se enviarán a un segundo plano. El fondo detecta ua. Una vez que se incluye información anormal, se devolverá el código = 300 y la verificación falla.
La generación de ua aún no ha sido descubierta, pero tiene varias características:
La ua enviada es diferente cada vez.
La duración de ua será cada vez más larga a medida que aumente el número de usos.
Hasta el momento, no se ha encontrado la generación ua en el análisis, pero sí el método de cifrado de contraseña, el cifrado RSA. El siguiente análisis continuará y las discusiones son bienvenidas.