Volver al Blog
Huella digital

Control de profundidad de pila en BotBrowser: Limites de recursion consistentes

Como BotBrowser controla la profundidad de recursion JavaScript con el flag --bot-stack-seed para consistencia multiplataforma.

El riesgo de privacidad

La profundidad de recursion JavaScript varia segun el motor del navegador, sistema operativo y arquitectura de CPU. Esta variacion puede servir como senal de rastreo. BotBrowser controla la profundidad de pila a nivel de motor con el flag --bot-stack-seed.

El flag --bot-stack-seed

BotBrowser proporciona tres modos de control de profundidad de pila:

# Usar el valor del perfil de huella digital (recomendado)
chrome --bot-profile="/path/to/profile.enc" \
       --bot-stack-seed=profile

# Usar el limite natural del host
chrome --bot-profile="/path/to/profile.enc" \
       --bot-stack-seed=real

# Establecer una profundidad personalizada
chrome --bot-profile="/path/to/profile.enc" \
       --bot-stack-seed=12500

Cuando se establece en profile, la profundidad de pila coincide con el valor registrado del dispositivo real del que se capturo el perfil. Esta es la configuracion recomendada para consistencia multiplataforma.

Control a nivel de motor

La modificacion ocurre dentro del motor del navegador antes de que se ejecute cualquier JavaScript. Afecta a todos los contextos de ejecucion: hilo principal, Web Workers e iframes. El desbordamiento de pila ocurre naturalmente en la profundidad configurada.

Combinacion con otros flags deterministicos

El control de profundidad de pila funciona mejor como parte de una configuracion deterministica completa:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-stack-seed=profile \
       --bot-noise-seed=42 \
       --bot-time-scale=1.0 \
       --user-data-dir="$(mktemp -d)"

Verificacion

Verifica la consistencia de profundidad de pila con Playwright:

const { chromium } = require('playwright-core');

const browser = await chromium.launch({
  executablePath: '/path/to/botbrowser/chrome',
  args: [
    '--bot-profile=/path/to/profile.enc',
    '--bot-stack-seed=profile',
  ],
  headless: true,
});

const page = await (await browser.newContext()).newPage();
const depth = await page.evaluate(() => {
  let d = 0;
  function r() { d++; r(); }
  try { r(); } catch (e) { return d; }
});
console.log('Stack depth:', depth);
await browser.close();

Ejecuta esto en diferentes maquinas con el mismo perfil. La profundidad reportada debe ser consistente.

Primeros pasos

  1. Descarga BotBrowser desde GitHub
  2. Elige un perfil del repositorio de perfiles
  3. Agrega --bot-stack-seed=profile para coincidir con la profundidad de pila registrada
  4. Verifica con una prueba de profundidad recursiva en diferentes maquinas
#stack-depth#javascript#recursion#fingerprinting#privacy