Re: First-Party-Only cookies

Martin Thomson <[email protected]>
Newsgroups gmane.comp.mozilla.security
Message-ID <CAPLxc=WjoT5FWEEsREnaZ6thJkZd9Vfahy8HK14F+ZmvOnQ7Fw@mail.gmail.com>
Wouldn't it be possible to use the first-party cookie in those cases
at the cost of one extra request?

The third-party initiated, top-level load would have no first-party
cookies, but that page could initiate a new request to check
credentials, which would have the first-party cookie.

It's a little extra latency, but it would seem to retain the
properties we're looking for.  For simplicity, a same-origin redirect
might be permitted to gain access to first-party cookies.

On Wed, Jan 20, 2016 at 10:59 PM, Mike West <[email protected]> wrote:
> Thanks for starting this thread, Mark. I'll reply to some of the questions
> inline, but I'll first note that I'm working on an -05 draft which might be
> helpful in terms of clarifying the mechanism under consideration at
> https://mikewest.github.io/internetdrafts/first-party-cookies/draft-west-first-party-cookies-05.html.
> That should make the Fetch story clearer, and hopefully address Anne's
> question about workers (it also renames the feature to "SameSite", for
> reasons that aren't worth getting into here).
>
> Broadly, the "safe" top-level navigation carveout is meant to deal with the
> confusion that might otherwise result from an auth cookie not being present
> for a request. Since GitHub is the only implementation I know of, let's use
> them as an example: it would be confusing if I clicked on a link to a
> private repository in an email, navigated to GitHub.com, and got a 403 error
> telling me I wasn't logged in. Likewise, it would be strange if I popped up
> a window as part of a "Sign in with GitHub" OAuth dance and had to sign in
> every time.
>
> They certainly _could_ rewrite their session management system to deal with
> multiple cookies granting different levels of access (just as Amazon
> requires reauth to actually buy things), but based on some conversations,
> they're more likely to simply not use the feature than to undertake that
> rewrite.
>
> At the moment, I'm thinking that it might be reasonable to have the carveout
> as an option; `SameSite=Lax` or something. I've been reluctant to do so, as
> I'm not sure the extra complexity is worth it, but if folks like GitHub
> wouldn't use the strict form of the feature, then such an option starts
> sounding more reasonable.
>
> On Wed, Jan 20, 2016 at 2:53 AM, Tanvi Vyas <[email protected]> wrote:
>>
>> I believe the intention here is to prevent sites that use safe methods for
>> state changing actions from depending on the First-Party-Only flag for CSRF
>> protection.
>
>
> For clarity, this isn't the intention of the carveout. The spec plainly
> states that this feature constitutes defense in depth, on top of a already
> robust CSRF protection. If we decide, however, that the carveout should be
> removed (optionally), then I certainly wouldn't block that decision based on
> the fact that some developers might mistakenly rely on it too heavily. We
> should give developers sharp tools. *shrug*
>
> -mike
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.