Deshabilitar las características de la batería HTML5

12

HTML5 tiene un conjunto de funciones relacionado con el estado de la batería del cliente. Se ha descrito como un privacy hole , como Se puede utilizar para rastrear e identificar a los usuarios de la web. La investigación sugiere que las funciones se pueden usar incluso para identifica a los usuarios mediante VPN o modo de navegación privada.

¿Qué navegadores se ven afectados y cómo puedo desactivar estas funciones?

    
pregunta Gruber 10.08.2015 - 08:26
fuente

2 respuestas

8

Firefox

Desde Firefox 52, la API de la batería se ha deshabilitado y solo está disponible para Chrome / código privilegiado (supongo que los complementos se encuentran en esta categoría). Para versiones anteriores, la API de la batería está habilitada de forma predeterminada. Se puede deshabilitar yendo a about:config y configurando dom.battery.enabled a false . Los cambios surten efecto inmediatamente en las cargas de página subsiguientes.

Chrome & Android

Tanto la versión móvil como la de escritorio se ven afectadas. Esta función está habilitada de forma predeterminada y no parece haber ninguna manera de deshabilitarla aún, aunque no deberías usar Chrome si te importa la privacidad.

El navegador de Android está afectado desde la versión 40, sin ninguna forma de desactivarlo tampoco.

explorador de Internet

La función es en consideración y no está (¿aún?) implementada en ninguna versión actual.

Safari

Esta función no está implementada actualmente en ninguna versión, ni de escritorio ni móvil.

Opera

Opera en el escritorio se ve afectada, la función está habilitada sin ninguna forma de deshabilitarla. Opera Mini no está afectado.

Aquí hay una demo que puede usar para verificar si es vulnerable. También hay ¿Puedo usar que proporciona información bastante actualizada sobre qué funciones son compatibles con los navegadores? Haré todo lo posible para mantener esta respuesta actualizada, pero le sugiero que vuelva a revisarla en caso de que algo cambie.

    
respondido por el André Borie 15.08.2015 - 14:12
fuente
1

Encontré una manera de evitar el uso de esta API usando javascript. Me funcionó en Chrome y Firefox (versión de escritorio).

(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);

para las versiones de escritorio, puede usar greasemonkey o similares para ejecutar este script antes de que se ejecute cualquier script en el documento, evitando cualquier uso de la API. Para dispositivos móviles, el problema sería ejecutarlo automáticamente antes de ejecutar los scripts de documentos. Podría guardarlo como bookmarklet, pero si el script de los lados se ejecuta antes de ejecutar el bookmarklet, es posible que almacene un objeto de navegador no modificado. (+ podrías olvidar el bookmarklet)

    
respondido por el JohnD03 28.06.2016 - 11:12
fuente

Lea otras preguntas en las etiquetas