Slashdot Mirror


How to Quash Firefox's Silent Requests

An anonymous reader writes: Unlike older versions of Firefox, more recent versions will make a request to a destination server just by hovering over a link. No CSS, no JavaScript, no prefetch required. Try it for yourself. Disable CSS and JavaScript and fire up iftop or Windows Resource Monitor, hover over some links and watch the fun begin. There once was a time when you hovered over a link to check the 'real link' before you clicked on it. Well no more. Just looking at it makes a 'silent request.' This behavior is the result of the Mozilla speculative connect API . Here is a bug referencing the API when hovering over a thumbnail on the new tab page. And another bug requesting there be an option to turn it off. Strangely enough the latter bug is still labeled WONTFIX even though the solution is in the comments (setting network.http.speculative-parallel-limit to 0).

Firefox's own How to stop Firefox from making automatic connections also mentions setting network.http.speculative-parallel-limit to 0 to to stop predictive connections when a user "hovers their mouse over thumbnails on the New Tab Page or the user starts to search in the Search Bar" but no mention regarding hovering over a normal link. Good thing setting network.http.speculative-parallel-limit to 0 does appear to disable speculative connect on normal links too. One can expect Firefox to make requests in the background to its own servers for things such as checking for updates to plugins etc. But silently making requests to random links on a page (and connecting to those servers) simply by hovering over them is something very different.

16 of 294 comments (clear)

  1. Thanks anonymous reader! by ciaran2014 · · Score: 5, Insightful

    Thanks for the info! (And for putting it in the summary)

    --
    Help build the anti-software-patent wiki
    1. Re:Thanks anonymous reader! by ciaran2014 · · Score: 5, Informative

      And for anyone new to Firefox, to set that variable:

      1. Type "about:config" into the address bar (and you'll see a list of variables)
      2. Copy'n'paste "network.http.speculative-parallel-limit" into the search bar at the top of that page and hit Return
      3. You'll now just have that one line on the page. Double-click it (or right click on it and select "Modify")
      4. A box pops up, you change the value to 0, and hit OK.

      Done.

      (The first time you look at "about:config", Firefox might ask you "Are you sure you know what you're doing?" Obviously you say yes to this.)

      (Yes I know I've explained it as if talking to a ten year old, but protecting your privacy is important so it's important that absolutely everyone can do it.)

      --
      Help build the anti-software-patent wiki
    2. Re:Thanks anonymous reader! by drinkypoo · · Score: 5, Informative

      You think this'll change back when Firefox updates?

      I've always had good luck with explicitly set variables being carried forward successfully.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  2. Tired... by Anonymous Coward · · Score: 5, Insightful

    Tired of keeping track of how to disable firefox new 'features'...

  3. Need a new browser. Not Chome, not IE, Not FF. by Anonymous Coward · · Score: 5, Insightful

    *Another* setting I have to alter.

    I can't trust FF any more. A little while back I looked around for a replacement, but no luck.

    Chrome is obviously so far beyond the pale it's keeping New Horizons in good company. MS have jumped the shark on privacy, IE is out. Firefox you can't trust, every update makes changes I dislike and it's huge, fat, slow and bloated.

  4. Thank you by GoodNewsJimDotCom · · Score: 4, Insightful

    There is a security flaw in email where spammers can validate you're an active email if you have images turned on. I guess if you accidentally hover their link that they can see you're an active email too! I set my network.http.speculative-parallel-limi to 0 in the url: about:config.

  5. Re:Need a new browser. Not Chome, not IE, Not FF. by Anonymous Coward · · Score: 5, Funny

    Upgrade to Windows 10 and use Microsoft Edge.

  6. Re:Need a new browser. Not Chome, not IE, Not FF. by ciaran2014 · · Score: 4, Insightful

    Firefox disappoints sometimes, but only because we have high expectations of it.

    I disagree with a few things they've done in the last two or three years but it's still light years ahead of the rest in terms of respecting your privacy, not trying to lock you in, being free software, supporting open standards (and not just as part 1 of a bait-and-switch, which I suspect all other browsers of), and a few other metrics.

    I've no idea how it compares for speed - I wouldn't even give the other browsers a test run.

    --
    Help build the anti-software-patent wiki
  7. "more recent" means since 2012... by Anonymous Coward · · Score: 4, Informative

    Unlike older versions of Firefox, more recent versions will make a request to a destination server just by hovering over a link.

    Looking at the bug request that was linked in the summary, it appears that "more recent versions" of Firefox means "all versions since 2012".

  8. Webmail obvious security issue by Anonymous Coward · · Score: 5, Insightful

    So... If you open a spam email via some webmail client, and hover over a link to see if it leads to where you expect (common thing to do if you're unsure if the email is legit or not)....
    Then, Firefox will connect to that link??????
    Their often unique hashes which identify exactly which email recipient the spam got to! It's not much different than actually clicking a link, and validates the email!

    That's about the most evil scenario I can think of and I don't like it one bit.

  9. Bugs? by Stoutlimb · · Score: 5, Insightful

    I could see a nightmare scenario with poorly implemented "click to buy" or voting websites. Some nations, in the cases of stuff like CP, make it illegal to access websites containing banned material. Now mousing over links can look identical to accessing, according to log files. What a mess.

    1. Re:Bugs? by Kelson · · Score: 5, Informative

      According to the docs, this doesn't fire on just any random website's links, only in specific parts of the Firefox UI:

      To improve the loading speed, Firefox will open predictive connections to sites when the user hovers their mouse over thumbnails on the New Tab Page or the user starts to search in the Search Bar, or in the search field on the Home or the New Tab Page. In case the user follows through with the action, the page can begin loading faster since some of the work was already started in advance.

      That's fortunate, because firing it on any website's hover link would reach that nightmare scenario pretty quickly.

      Link prefetcing on websites only happens if the site explicitly marks the link for prefetch. (Example use case: prefetch page 2 of an article from page 1.) Firefox & Chrome have done this for years.

    2. Re:Bugs? by Kelson · · Score: 5, Informative

      And looking closer at the API description, speculative connect isn't supposed to actually make the HTTP request, just set up the TCP connection. No headers, no URL, just an IP address at the network layer.

      Still technically a connection, but hardly any information is sent, and it's not mistakable for an actual click.

  10. Re:Ancient news by gstoddart · · Score: 4, Insightful

    I've always thought web accelerator was a dumb naming ... we'll waste your bandwidth by downloading a bunch of shit you haven't clicked on so that if you do want it, the it is cached.

    It would load quicker if they weren't pre-fetching the entire fucking internet on the notion that I might want it at some point.

    Sorry, Mozilla, but you're simply not getting the point here.

    --
    Lost at C:>. Found at C.
  11. What's the problem? by today · · Score: 5, Informative

    I don't understand the concern, at least if I'm reading the documentation for the speculative connect API correctly (first link in blurb).

    All this seems to do is make the TCP connection (whether SSL or not) in anticipation of a link being clicked. The speculative connect API does not send any data in the TCP pipe it is creating. By opening the TCP link early, once the link is clicked, the TCP connection is probably ready to go, cutting down a bit on setup delay (which can sometimes be substantial if DNS is slow to resolve or the connection is using SSL), thus making the click seem more responsive to the user.

    But nowhere in the docs is any mention of actual requests made to the server or any data downloaded from the server... until you click the link. Thus, the only information leaked by hovering over a link but not clicking on it is your externally-known IP address, which may show up in the error logs of the webserver as a dropped connection. There seems to be no danger of accidentally downloading a virus simply by hovering over a click.

    If I'm missing something, please let me know.

    1. Re:What's the problem? by BitZtream · · Score: 4, Insightful

      So right off the top of my head, two examples of things you're missing:

      An SSL handshake bug ... which we've seen before is still entirely possible. You don't need to send a HTTP protocol request for an SSL bug to fuck you over. Unless of course you think Firefox is flawless and bug free ... which we are 100% certain will never be the case.

      Its also trivial to continue to leak information by setting up the connection to a particular host without sending the full request based on how the host link is configured.

      Simply configure your spam email/site to point to individual IPs and port combos for every email you send, then when viewed in a browser, this presetting up of conditions can still be used for confirmation of email delievery as well as potentially exploiting bugs in the browser, which is a safe bet to exist based on the ignorance of this feature.

      And this is why just because YOU don't understand why security works the way it does, doesn't mean you've thought of all the actual scenarios.

      Lets see what else: TCP connects cost bandwidth, not much, but some, this is just another example of speculative wastefulness typical with modern programmers who have no consideration about what the costs are of the operation they are performing because it happens so fast in their dev environment they don't notice the cost. On the other hand, a very popular website will now notice a many more idle connections, which are not free, maybe not even cheap, because Firefox is being retarded and forgetting Internet Security 101.

      Throw in using a custom DNS hostname for every URL thrown into an email or web page, and now you can easily track hovered over links of the user without them clicking a thing.

      You don't go connecting to random machines on the Internet without specific instruction to do so, #InternetSecurity101

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager