Slashdot Mirror


Firefox Disables Loophole that Allows Sites To Track Users Via Battery Status (theguardian.com)

New submitter xogg writes: Battery Status API allows web sites to read the battery level of user's system. The API was found to bring privacy risks and abuse potential and a number of implementation bugs. Now with apparent no legitimate use cases, Mozilla is taking the unprecedented decision to vaporize a browser API due to privacy concerns. And apparently, WebKit, powering Apple's Safari follows. Is that the first time a browser reduces functionality following research reports warning of privacy risks?

24 of 104 comments (clear)

  1. Reducing Functionality? by iYk6 · · Score: 5, Insightful

    I would hardly call this reducing functionality. Technically, sure. But a web browser is supposed to browse the web, and this API wasn't helping any.

    1. Re:Reducing Functionality? by Anonymous Coward · · Score: 2, Insightful

      Right, because webmasters always do what is technically possible for improving UX, not what is most profitable with shoving malware-laced ads down consumers' throats at the maximum possible bandwidth.

      Oh brb, slashdot just jacked my browser with some "dnshost.me" tab that is almost certainly downloading malicious javascript.

      If only I could say, "hey guys! my battery is low! lay off a bit!". I'm sure they'd listen.

    2. Re:Reducing Functionality? by Anonymous Coward · · Score: 3, Informative

      A website could serve up fewer video intensive ads if it detected a low battery status

      Maybe...

      even pop up an alert window and offer to sell the user a new battery

      Don't want

      It could go ahead and save the user's status or input if it thought that the battery was about to die.

      I'll hit save before I put it to sleep, no worries.

      Honestly this is a tempest in a teapot. Couldn't it just be reduced to:
      Battery level low: True/False

      Heck let the user set what level it shows low as at well.

    3. Re:Reducing Functionality? by bondsbw · · Score: 3, Interesting

      This API never needed to provide battery level as a double value. An enumeration such as { Full | Sufficient | Low | Critical } would have solved the privacy issue while providing useful information.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    4. Re:Reducing Functionality? by anarcobra · · Score: 2

      > or even pop up an alert window and offer to sell the user a new battery
      I'm having a hard time deciding if you were joking or serious.

    5. Re:Reducing Functionality? by KiloByte · · Score: 2

      An enumeration such as { Full | Sufficient | Low | Critical } would have solved the privacy issue

      Except that the primary reason for this change was not tracking but Uber jacking prices up if your battery is low.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
  2. Not to worry... by QuietLagoon · · Score: 3, Insightful

    ... there will be far more egregious privacy-risking APIs in web browsers in the future....

    1. Re:Not to worry... by Anonymous Coward · · Score: 3, Informative

      ... there will be far more egregious privacy-risking APIs in web browsers in the future....

      Indeed. I don't even want a site to know whether I'm on a "mobile" device. All I want is standards compliant HTTP, HTML, CSS, and JS. I don't want ANYTHING else in my browser - if I did want those things, I would put them there myself. The remote site should neither know nor care what system is implementing the standards-compliant browser I use. All the remote site really needs to know is that my user agent speaks HTTP. Nothing else, including OS/platform, user-agent, etc is any of its damn business.

  3. We've gone too far by Virtucon · · Score: 4, Insightful

    Stop introspecting the device within the browser framework. Browse the web, run sandboxed script code, but stop digging into the device. Leave the other information mining to apps with appropriate user controls to say fuck off when appropriate.

    --
    Harrison's Postulate - "For every action there is an equal and opposite criticism"
    1. Re:We've gone too far by Anonymous Coward · · Score: 2, Informative

      Somebody should tell that to android phone manufacturers that put everything from model to build number in the user agent.

    2. Re:We've gone too far by GuB-42 · · Score: 2

      Interestingly, Mozilla's FirefoxOS is all about interacting with the device within the browser framework.
      The point of FirefoxOS is to make an OS that only runs a web browser, all user programs are web apps. So all hardware features, including the battery meter, have to be accessed by a web api.

  4. Re:For what reason...? by grahamsz · · Score: 2

    So it can avoid loading video ads on mobile when you have low battery :D

  5. Couldn't they have addressed the privacy concern? by JMZero · · Score: 2

    Make the site request permission, like it would for the camera or GPS location.

    I don't see this is as some big thing, but just because I can't think of an important use case doesn't mean there isn't a good one somewhere. Surely somebody wanted this for some reason? Anyway, it seems weird to introduce it then take it back over concerns that seem pretty mild, and also pretty easy to address the same way other concerns have been addressed in the past.

    --
    Let's not stir that bag of worms...
  6. Re:For what reason...? by PPH · · Score: 2

    So let's have a fake 'low battery status' tool to inhibit ads. I'm setting mine at 5% for the rest of my life.

    --
    Have gnu, will travel.
  7. Reduce functionality for security by SeriousTube · · Score: 3, Informative

    It isn't the first time browsers reduced functionality for security. It used to be you could use a url such as http: //username:password@hostname/ but that was abused and eliminated from all major browsers. (space added after http so slashdot reformatter doesn't break comment).

  8. Better solution by presidenteloco · · Score: 4, Interesting

    Just replace the battery percentage value, if that's what the API was returning with an BatteryIsLow() boolean, which could be set at something arbitrary, like 30%.

    This way, the valid use cases, like control of video serving or "intensity", could still work, but the privacy concern would be gone. You can't effectively track someone in general just by knowing the times when they transition around 30%. That would be too rare to be a useful tracking data point.

    --

    Where are we going and why are we in a handbasket?
    1. Re:Better solution by wonkey_monkey · · Score: 4, Interesting

      How about just "on battery power" or "plugged in"?

      --
      systemd is Roko's Basilisk.
  9. Re:Yes by Black+Parrot · · Score: 2

    "apparent no", according to the summary.

    --
    Sheesh, evil *and* a jerk. -- Jade
  10. Re:For what reason...? by whoever57 · · Score: 2

    So let's have a fake 'low battery status' tool to inhibit ads.

    You really think that websites would not send you an ad if your battery was low?

    --
    The real "Libtards" are the Libertarians!
  11. And nothing of value was lost by sjbe · · Score: 2

    There were many promising use cases for this functionality, which now have gone into the shitter.

    There wasn't a single valid use case for third parties being able to monitor your battery through a general purpose web browser. It just gives another way for advertisers to try to keep tabs on you without your permission. There is nothing useful about this "feature" to me as an end user and as such it should go away.

    A website could serve up fewer video intensive ads if it detected a low battery status, for example, or even pop up an alert window and offer to sell the user a new battery

    I have an easier solution. I just block the ads and then there is no problem with them draining my battery. Here's a clue - anything that increases the ability of advertisers to track me is a Bad Thing. Here's another clue. Advertisers don't give a shit about saving your battery. You are nothing more than $$$ to be harvested to them. The notion that advertisers would altruistically do things to save your battery life is unbelievably naive.

    It could go ahead and save the user's status or input if it thought that the battery was about to die.

    This can be done without worrying about the state of the battery and in fact doing so is often a good idea. Being able to monitor my battery improves nothing.

    1. Re:And nothing of value was lost by AmiMoJo · · Score: 2

      The idea was that web "apps" could be nearly as good as native apps, except no need to install them and they run sandboxed in the browser. Remember that the industry seems to think that every web site needs a companion app that is basically a webview control with shortcuts to spam your contacts list or direct you to the nearest store.

      With other similar features, like location information, the site has to make a request and be approved by the user. This mis-feature doesn't require that though, which is why it's so a huge privacy hole. Not that I'd approve its request anyway, but it might have stood a chance if they had at least bothered to ask.

      This is actually a quite important move. Browser vendors are drawing the line - you can ask the user for permission, otherwise you are blocked.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  12. Re:It's called a 'browser' for a reason. by Lussarn · · Score: 2

    We've tried the global experiment of browser-as-platform, and it has failed miserably from a security, usability and consumer-rights perspective.

    The browser as a platform has definitely not failed, 90% of all computer time is probably in the browser. It has taken over almost all general computing task and more is coming. Look at the R&D invested in web technologies versus your favorite desktop OS. The desktop OS as we know it are going to die, it's already minuscule compared to the web.

  13. Doubt it's the first time by ilsaloving · · Score: 2

    I doubt this is the first time, seeing as how computer science is now a 70 year old field.

    But that's not even the correction question. The real question is, "Did they do the right thing?" IMO, yes, yes they did. A website has zero legitimate reason to track battery status, and as we've already discovered, the API is nothing more than another avenue for abuse.

      The whole bluetooth web API nonsense falls into the same category. The level and likelihood of abuse is countless orders of magnitude more likely than any legitimate use case the budding Einstein inventor can come up with.

  14. Fuck you (-10000 Flaimbate) by Zontar+The+Mindless · · Score: 5, Insightful

    There were many promising use cases for this functionality, which now have gone into the shitter.

    Horseshit. No website has *any fucking business whatsoever* accessing my hardware in such a fashion, period.

    And I am perfectly capable of reading my device's battery monitor on my own, thanks very much.

    And if websites didn't on serving up "video intensive" ads, ad blockers might not be in such high demand.

    And you're a complete asshole for wanting to be an enabler of this shit.

    Go die in a fire.

    --
    Il n'y a pas de Planet B.