W3C home > Mailing lists > Public > public-webappsec@w3.org > September 2016

Re: Restrict loopback address to Secure Contexts?

From: John Wilander <wilander@apple.com>
Date: Mon, 26 Sep 2016 13:39:26 -0700
Message-id: <70FA666A-5EE6-4B1C-AC25-248B50ACA459@apple.com>
Cc: "public-webappsec@w3.org" <public-webappsec@w3.org>
To: Crispin Cowan <crispin@microsoft.com>

> On Sep 26, 2016, at 12:59 PM, Crispin Cowan <crispin@microsoft.com> wrote:
> Could you clarify? What is your actual question?

I guess you could boil it down to “Instead of allowing local non-TLS connections in Secure Contexts let’s restrict them to Secure Contexts OR same-origin."

> My views of an ideal world:
> ·         Browsers only allow loopback connection after a CORS Preflight

Web Sockets instead do a handshake. I assume you mean both CORS preflight and Web Socket handshake should be allowed.

> ·         Browsers vet that “loopback” and “localhost” actually are local and not an alias


> ·         Post vetting, browsers treat loopback as a secure connection, specifically for this reason that breaks Devdatta’s scenario among many others

This is what we want to refine. Instead of opening for these connections too we want block local connections from non-secure contexts and only allow local connections from secure contexts. I.e non-secure documents no longer get to access localhost unless they themselves are loaded from localhost.
> Should native extensions or native messaging also be allowed?

Here I’m not sure what you mean. Are you saying native extensions should not be allowed to talk to local web servers?

In the case of Safari’s native extensions they are wrapped in signed, sandboxed native applications which they can share data with. The containing app gets user land permissions according to the App Sandbox rules and so it typically wouldn’t need a local web server.

   Regards, John

> ·         I think “no”. Caveat: I have changed my mind, several times, just this year.
> ·         I don’t own our extensions model, so what I think is just an opinion.
> From: wilander@apple.com [mailto:wilander@apple.com] 
> Sent: Monday, September 26, 2016 11:43 AM
> To: public-webappsec@w3.org
> Subject: Restrict loopback address to Secure Contexts?
> Hi WebAppSec!
> There’s an ongoing discussion on whether browsers should treat localhost as a secure context <https://github.com/w3c/webappsec-secure-contexts/issues/43>. Devdatta brought up web sockets specifically <https://lists.w3.org/Archives/Public/public-webappsec/2015Mar/0135.html> in March last year. We would like to discuss restriction of the loopback address to same-origin or Secure Contexts. Maybe open up so that a loopback address could connect to any loopback address but that might open up for race conditions.
> Safari treats localhost connections as mixed content and blocks if the content is active. There is a growing number of local companion apps that web pages or browser extensions talk to. I believe the most common setup are local web sockets. We tell developers that Safari’s native extensions <https://developer.apple.com/safari/extensions/> are the secure way to go but there are existing companion apps and sometimes a desire for a one-size-fits-all solution for all browsers.
> The network attacker scenario doesn’t make sense for local connections so mixed content blocking is not really appropriate. On the flip side, allowing access to local web servers from non-secure contexts seems really bad. Yes, the server is supposed to check the Origin header but a network attacker can solve that unless the origin the server is checking for is under HSTS.
> What do you think? I know there’s been a lot of discussion on restriction of localhost.
>    Regards, John

Received on Monday, 26 September 2016 20:39:59 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:54:57 UTC