Volver al Blog
Huella digital

Proteccion de tipos MIME y codecs con BotBrowser

Como BotBrowser controla las respuestas de capacidades multimedia a traves de perfiles de huella digital para senales consistentes de codecs y tipos MIME.

El riesgo de privacidad

Los navegadores soportan diferentes conjuntos de formatos multimedia, tipos MIME y codecs dependiendo de la version del navegador, el SO y el hardware. Estas capacidades pueden ser consultadas sin permisos a traves de APIs como MediaSource.isTypeSupported() y canPlayType(), creando una senal de rastreo.

La solucion de BotBrowser

BotBrowser gestiona las respuestas de capacidades multimedia a nivel del motor del navegador, asegurando que coincidan con el perfil de huella digital cargado.

Capacidades multimedia basadas en perfil

chrome --bot-profile="/path/to/profile.enc" \
       --user-data-dir="$(mktemp -d)"

El perfil define que codecs son soportados, que devuelve canPlayType() para cada formato y si se reporta aceleracion por hardware. Todas las consultas de capacidades multimedia devuelven resultados consistentes con la plataforma objetivo del perfil.

Consistencia entre senales

BotBrowser asegura que las capacidades multimedia se alineen con otras senales del perfil:

  • El soporte de codecs coincide con el sistema operativo del perfil
  • Los flags de aceleracion por hardware se alinean con la GPU del perfil
  • El soporte de tipos MIME coincide con la version del navegador del perfil

Respuestas realistas

En lugar de deshabilitar las consultas de capacidades multimedia (lo cual es detectable), BotBrowser devuelve respuestas realistas que coinciden con una configuracion de navegador real.

Verificacion

Despues de cargar un perfil, verifica las capacidades multimedia:

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

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

const page = await (await browser.newContext()).newPage();

const mediaInfo = await page.evaluate(() => {
  const codecs = [
    'video/mp4; codecs="avc1.42E01E"',
    'video/webm; codecs="vp9"',
    'video/mp4; codecs="av01.0.01M.08"',
    'audio/mp4; codecs="mp4a.40.2"',
    'audio/webm; codecs="opus"',
  ];

  const video = document.createElement('video');
  return codecs.map(c => ({
    codec: c,
    isTypeSupported: typeof MediaSource !== 'undefined'
      ? MediaSource.isTypeSupported(c) : null,
    canPlayType: video.canPlayType(c),
  }));
});

console.log('Capacidades multimedia:', JSON.stringify(mediaInfo, null, 2));

Verificaciones clave:

  1. Los resultados de MediaSource.isTypeSupported() coinciden con la plataforma objetivo
  2. Los valores de retorno de canPlayType() son apropiados para la plataforma
  3. Los resultados son consistentes al recargar la pagina

Primeros pasos

  1. Descarga BotBrowser desde GitHub
  2. Carga un perfil de huella digital con --bot-profile
  3. La proteccion de capacidades multimedia se gestiona automaticamente por el perfil
  4. Verifica que el soporte de codecs coincida con la plataforma objetivo del perfil
#mime#codec#media#fingerprinting#privacy