Protection des types MIME et codecs avec BotBrowser
Comment BotBrowser controle les reponses de capacites multimedia a travers les profils d'empreinte pour des signaux de codecs et types MIME coherents.
Le risque pour la vie privee
Les navigateurs supportent differents ensembles de formats multimedia, types MIME et codecs selon la version du navigateur, le systeme d'exploitation et le materiel. Ces capacites peuvent etre interrogees sans permissions via des APIs comme MediaSource.isTypeSupported() et canPlayType(), creant un signal de suivi.
La solution BotBrowser
BotBrowser gere les reponses de capacites multimedia au niveau du moteur du navigateur, assurant qu'elles correspondent au profil d'empreinte charge.
Capacites multimedia basees sur le profil
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Le profil definit quels codecs sont supportes, ce que canPlayType() retourne pour chaque format et si l'acceleration materielle est rapportee. Toutes les requetes de capacites multimedia retournent des resultats coherents avec la plateforme cible du profil.
Coherence entre les signaux
BotBrowser assure que les capacites multimedia s'alignent avec les autres signaux du profil :
- Le support des codecs correspond au systeme d'exploitation du profil
- Les indicateurs d'acceleration materielle s'alignent avec le GPU du profil
- Le support des types MIME correspond a la version du navigateur du profil
Reponses realistes
Plutot que de desactiver les requetes de capacites multimedia (ce qui est detectable), BotBrowser retourne des reponses realistes qui correspondent a une configuration de navigateur reelle.
Verification
Apres avoir charge un profil, verifiez les capacites 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('Capacites multimedia:', JSON.stringify(mediaInfo, null, 2));
Verifications cles :
- Les resultats de
MediaSource.isTypeSupported()correspondent a la plateforme cible - Les valeurs de retour de
canPlayType()sont appropriees pour la plateforme - Les resultats sont coherents apres rechargement de la page
Pour commencer
- Telechargez BotBrowser depuis GitHub
- Chargez un profil d'empreinte avec
--bot-profile - La protection des capacites multimedia est geree automatiquement par le profil
- Verifiez que le support des codecs correspond a la plateforme cible du profil