Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Firefox Privacy Safari Your Rights Online

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

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?
This discussion has been archived. No new comments can be posted.

Firefox Disables Loophole that Allows Sites To Track Users Via Battery Status

Comments Filter:
  • Yes
    • "apparent no", according to the summary.

      • by Anonymous Coward

        Is that the first time a browser reduces functionality following research reports warning of privacy risks?

        No, it is not the first time that Firefox and Safari both have reduced functionality to protect users from a privacy risk. They likewise disable/spoof link visited color in CSS, because it can be used to slurp up history (the CSS History Probing attack) to get a reasonably unique fingerprint of the viewer of a site.

  • by iYk6 ( 1425255 ) on Tuesday November 01, 2016 @04:05PM (#53194185)

    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.

    • Comment removed based on user account deletion
    • Yeah, they've finally turned off an API that had no place being in a browser in the first place. Now all they need to do is disable the 800 APIs that have the same problem.

      Had some Rust flake the other day rhapsodise to me how Servo was going to revolutionise browsing, and how the ability for web sites to directly control your rendering hardware was going to make Firefox the bestest and fastest browser ever. My response of "fixes browser memory leaks, does it?" didn't go down too well...

      • The whole Mozilla organisation jumped the shark some years ago, when they let the UX hoodlums and mealy-mouthed marketing types take over. Been using it since it was Phoenix 0.9.something. But now... It's been so sad, watching the cancer take hold... Pretty sure it's terminal by now.

        *sigh*

  • Not to worry... (Score:4, Insightful)

    by QuietLagoon ( 813062 ) on Tuesday November 01, 2016 @04:06PM (#53194199)
    ... there will be far more egregious privacy-risking APIs in web browsers in the future....
    • Re: (Score:3, Informative)

      by Anonymous Coward

      ... 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.

      • 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.

        Goddamn right you are. Sorry no mod points ATM, though.

      • by tepples ( 727027 )

        I don't even want a site to know whether I'm on a "mobile" device.

        Then watch it assume you're on a mobile device and require use of drag gestures to view the next or previous page. Or watch it assume you're on a desktop computer and end up with tiny text, mouseovers, and links smaller than your fingertip.

        • Then watch it assume you're on a mobile device... Or watch it assume you're on a desktop computer...

          Perhaps you missed this part?

          All I want is standards compliant HTTP, HTML, CSS, and JS

          The point being that the website should not assume anything whatsoever about the client, other than that it accepts these things and has its own ways of handling them, thank you very much.

          • by tepples ( 727027 )

            "standards compliant [...] JS" can assume the use of touch gestures, such as slide to change pages. Or it can assume the usefulness of mouseover events.

            "standards compliant [...] CSS" can make links small and close together.

    • Comment removed based on user account deletion
  • We've gone too far (Score:5, Insightful)

    by Virtucon ( 127420 ) on Tuesday November 01, 2016 @04:12PM (#53194227)

    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.

    • Re: (Score:2, Informative)

      by Anonymous Coward

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

      • by Anonymous Coward

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

        You actually use the stock browser that comes with the phone? I believe that's the source of your problem - trusting Google and/or the phone vendor to have your best interests at heart was a bad move. Frankly, you can't keep doing naive things like that and then reasonably expect anything else to happen. A good heuristic: if it comes from a marketing company, a phone company, or a cable company, it's automatically suspect until rigorously proven otherwise. This is doubly true for anything that comes ou

        • ...if it comes from a marketing company, a phone company, or a cable company, it's automatically suspect until rigorously proven otherwise.

          Truer words were never spoken.

          Or, for you millennial types, "This."

      • NOt just them.

        A while back there was a story on /. where you could check how unique your browser signature is. I was unique in the then-set of about 15,000 - mostly due to my Linux/Firefox user agent combination. That one was unique.

        With the web being "standard" and all, I wonder what the use of such user agents is in the first place!

        • It exists so that people can make that javascript popup that says "This site only supports Microsoft Internet Explorer 6.0+".
          • I'm sure you can do that in a different way: just use a few IE6-only commands that make the pop-up appear on IE6 but not on any other browsers. No need to check the UA for that.

    • by GuB-42 ( 2483988 )

      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.

    • Stop introspecting the device within the browser framework

      That's my preference, too.

      It's interesting to look at the history of this API, particularly early documents for the "System Information API" drafts that the Devices and Sensors WG produced, such as this one [w3.org], and the discussions on the mailing list leading up to it.

      The justification seems to have been, gee, why can't web apps do everything native apps can? Who cares whether there's a use case?

      Of course this was in keeping with the historical moment. This stuff originated in 2009 (yes, seven years is a typica

  • At the risk of being relegated to the realm of the uninitiated, I have to ask: For what practical reason does a browser need to have information about battery life?
    • So it can avoid loading video ads on mobile when you have low battery :D

      • by PPH ( 736903 )

        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.

        • 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?

      • by Anonymous Coward

        ... does that sound to you like something that an advertiser is ever going to support? They are the "privacy concern" in the first place, using battery levels as a piece of identifying data for your browser session.

        • They are the "privacy concern" in the first place, using battery levels as a piece of identifying data for your browser session.

          For a session, they already have your IP address and port information. They have the info in the user agent header.

          Of what value is a tracking system that reports a different user just because someone has put his device on a charger, or that thinks it is talking to someone different because the battery level has gone down?

    • I could imagine it being more useful as browser based apps become heavier and heavier, you could selectively disable features as the battery gets eaten away. Also, as the mobile world shifts from apps to responsive web pages, you can do the same.

      On the other hand, one could argue that the user might want to be in control of how much power a page uses anyhow, so you might as well supply the option. But then one option might be 'go full out when there's lots of juice, drop down a little bit when we're runni

  • by JMZero ( 449047 ) on Tuesday November 01, 2016 @04:20PM (#53194275) Homepage

    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.

    • Better solution (Score:5, Interesting)

      by presidenteloco ( 659168 ) on Tuesday November 01, 2016 @04:32PM (#53194355)

      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.

    • From the actual spec [w3.org] (emphasis mine):

      4. Security and privacy considerations

      The API defined in this specification is used to determine the battery status of the hosting device. The information disclosed has minimal impact on privacy or fingerprinting, and therefore is exposed without permission grants. For example, authors cannot directly know if there is a battery or not in the hosting device.

      From now on, let's just assume that any information can be mis-used and not send it without explicit permission,

  • by SeriousTube ( 2575581 ) on Tuesday November 01, 2016 @04:31PM (#53194347)
    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).
  • I wish Chrome and Firefox gave their owners complete control over exactly what APIs random websites can access, rather than just presume we don't care if they report our system details and other things.
    It seems crazy to me that by default I can't even stop websites from opening other browser windows.

  • Setting aside cross-site requests etc, I think the first time privacy issues were recognized by browsers was when they restricted access to :visited link styles [mozilla.org] in order to prevent sites from discovering what other sites you had visited in the browser.

  • Why the hell would Mozilla allow websites to view your battery status to begin with? That's bullshit.
  • by ilsaloving ( 1534307 ) on Tuesday November 01, 2016 @05:51PM (#53194899)

    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.

    • what about disabling or degrading some of the heavier elements of a page if the battery is low? seems courteous and reasonable to me; legitimate, even.

  • Who the fuck ever thought this was a good idea in the first fucking place?!?!?!?!?!??!?!?!?!?! 99% of all web sites give exactly ZERO fucks about my screen dimensions, bandwidth availability, bandwidth costs, CPU, memory, storage usage, what else I'm using my computer for, or how much free time I have. What fucking IDIOT thought ANYONE ANYWHERE would ever lift a fucking FINGER to save me an ounce of battery life? "Oh, hey, I was going to do a few rounds of SETI@HOME in this iframe here, but since your brows

  • Let's face it, using the battery level for tracking purposes is malware. And, while it would be possible to serve simpler, lower computational cost websites when battery levels are low, or increase autosave frequency, its main use has been hostile to the user. I would say that if a website didn't make use of the battery state information in any way that helps the user, but asks for it anyways, then it is a malware website. Admittedly very mild malware, but if this had been severely punished early on, we wou

  • AFAIK, while Webkit has an implementation of the Battery Status API, Apple always specifically disabled it in their Safari builds.

    From what I can see, the only browsers affected by it currently are Firefox, Chrome, and Opera. Microsoft and Apple had enough wisdom to stay away from this API in their shipping browsers.

    Yaz

  • How about the Ambient Light API [mozilla.org]? And any other sensor-exposing APIs that may be lurking in there? Or, if somebody really thinks there's a good reason to allow sites to read arbitrary sensors, give the user fine-grained control over which sites have access to which sensors. Preferably with the default access being "NONE".

"Money is the root of all money." -- the moving finger

Working...