Disabilita le funzionalità della batteria HTML5

12

HTML5 ha un set di funzioni relativo allo stato della batteria del cliente. È stato descritto come una privacy hole , come può essere usato per tracciare e identificare gli utenti web. La ricerca suggerisce che le funzioni possono essere utilizzate anche per identifica utenti che utilizzano VPN o modalità di navigazione privata.

Quali browser sono interessati e come posso disabilitare queste funzionalità?

    
posta Gruber 10.08.2015 - 08:26
fonte

2 risposte

8

Firefox

Da Firefox 52, l'API della batteria è stata disabilitata ed è disponibile solo per il codice chrome / con privilegi (suppongo che i componenti aggiuntivi rientrino in questa categoria). Per le versioni precedenti, l'API della batteria è abilitata per impostazione predefinita. Può essere disabilitato andando a about:config e impostando dom.battery.enabled su false . Le modifiche hanno effetto immediato sui successivi caricamenti di pagina.

Chrome & Android

Sono interessate sia la versione mobile che quella desktop. Questa funzione è abilitata per impostazione predefinita e non sembra esserci alcun modo per disattivarla ancora, anche se non dovresti utilizzare affatto Chrome se ti interessa la privacy.

Il browser Android è interessato dalla versione 40, senza alcuno strumento per disattivarlo.

Internet explorer

La funzione è in esame e non è (ancora?) implementata in nessuna versione attuale.

Safari

Questa funzione non è attualmente implementata in nessuna versione, né desktop né mobile.

Opera

Opera su desktop è interessato, la funzionalità è abilitata senza alcuno strumento per disabilitarla. Opera Mini non è interessato.

Ecco una demo che puoi utilizzare per verificare se sei vulnerabile. C'è anche Posso usare che fornisce informazioni abbastanza aggiornate su quali funzionalità sono supportate nei browser. Farò del mio meglio per mantenere aggiornata questa risposta, ma ti suggerisco di ricontrollare lì solo nel caso in cui qualcosa sia cambiato.

    
risposta data 15.08.2015 - 14:12
fonte
1

Ho trovato un modo per impedire l'uso di questa API usando javascript. Ha funzionato per me in chrome e firefox (versione desktop).

(function(navi){
   var nnav = new Proxy(navi,{
      get:function(t,p){
         if(p == "getBattery" || p == "battery"){
             return void(0);
         }
         if(t[p] instanceof Function){
             return t[p].bind(navi);
         }
         return t[p];
      },
      has:function(t,p){
         if(p == "getBattery" || p == "battery"){
            return false;
         }
         return p in navi;
      }
   });

   Object.defineProperty(window,"navigator",{
      configurable: false,
      enumberable: false,
      value:nnav,
      writable:false,
   });
})(window.navigator);

per le versioni desktop è possibile utilizzare greasemonkey o tale per eseguire questo script prima dell'esecuzione di qualsiasi script nel documento, impedendo l'utilizzo dell'API. Per i dispositivi mobili il problema sarebbe eseguirlo automatizzato prima dell'esecuzione degli script dei documenti. È possibile salvarlo come bookmarklet, ma se lo script dei lati viene eseguito prima di eseguire il bookmarklet, potrebbe archiviare un oggetto navigatore non modificato. (+ potresti dimenticare il bookmarklet)

    
risposta data 28.06.2016 - 11:12
fonte

Leggi altre domande sui tag