I might be missing something here, but aren’t bound tokens exactly as 
vulnerable to the XSS attacks you describe as http-only cookies are?

— Neil

> On Friday, May 18, 2018 at 5:43 pm, Jim Manico <j...@manicode.com 
> (mailto:j...@manicode.com)> wrote:
> A few notes:
>
> > The session cookie should also be flagged as http only to protect it.
>
> This provides no real protection. If I get XSS into your site I don’t need to 
> steal the cookie. I can just force requests that will automatically send it 
> (client side or stored request forgery). So while it’s a standard suggestion, 
> it helps little.
>
> > Having a refresh token in local storrage may introduce new security issues 
> > unless it is token bound.
>
> Token binding is not live yet, right? If you need to store a token in a 
> browser please note there is no safe place to store it. LocalStorage can be 
> harvested by XSS and even the strongest cookies can be replayed as discussed 
> above. I can’t wait for browser based token binding! But it will likely take 
> years for this to be avail in the majority of browsers.
>
> > Understanding the security issues of the code flow in the browser is 
> > important, before any new recommendation.
>
> Well said. It looks to be the only secure workflow for browser based apps. 
> Love it how passwords are kept away from RP’s and high powered tokens are not 
> stored in the browser.
>
> Aloha,
> --
> Jim Manico
> @Manicode
> Secure Coding Education
> +1 (808) 652-3805
>
>
> On May 18, 2018, at 12:27 PM, John Bradley <ve7...@ve7jtb.com 
> (mailto:ve7...@ve7jtb.com)> wrote:
>
> > Yes that was the original intent to have the AT be short lived and refresh 
> > the AT via the authorization endpoint based on the session cookie.
> >
> > The session cookie should also be flagged as http only to protect it.
> >
> > Having a refresh token in local storrage may introduce new security issues 
> > unless it is token bound.
> >
> > Understanding the security issues of the code flow in the browser is 
> > important, before any new recommendation.
> >
> > John B.
> >
> > From: Brock Allen
> > Sent: Friday, May 18, 2:46 PM
> > Subject: Re: [OAUTH-WG] is updated guidance needed for JS/SPA apps?
> > To: David Waite, Hannes Tschofenig
> > Cc: oauth@ietf.org (mailto:oauth@ietf.org)
> >
> >
> > One thing I maybe should have listed in the pros/cons in my original email 
> > is session management and token lifetime considerations, keeping in mind 
> > the original intent of the implicit flow.
> >
> > What I mean is that with implicit grant type, the client's ability to get 
> > new access tokens is limited to the user's session at the AS/OP. Obviously 
> > other flows make more sense to obtain longer lived access (via refresh 
> > tokens), but I don't know about a browser-based JS app. In a sense there's 
> > a bit of protection for the end user built into that design by virtue of 
> > being tied to the user's cookie at the AS/OP.
> >
> > Just throwing that out as an additional discussion point.
> >
> > -Brock
> >
> > > On 5/18/2018 6:04:47 AM, David Waite <da...@alkaline-solutions.com 
> > > (mailto:da...@alkaline-solutions.com)> wrote:
> > > I have written some guidance already (in non-RFC format) on preferring 
> > > code for single page apps, and other security practices (CORS, CSP).. 
> > > From the AS point of view, it aligns well with the native apps BCP. There 
> > > are benefits of thinking about native and SPA apps just as ‘public 
> > > clients’ from a policy/properties point of view. It also greatly 
> > > simplifies OAuth/OIDC support on both the AS administrator and client 
> > > developer side when converting web properties into native apps using 
> > > technologies like Electron or Cordova.
> > >
> > > For the later requirements in the list around token policy, I am not sure 
> > > these are requirements for single page apps per se. I don’t believe the 
> > > need for a policy using short-lived refresh tokens, revoking at signout, 
> > > or use of the revocation endpoint are different from browser and native 
> > > applications. Rather they seem to be a function of usage patterns that an 
> > > AS may need to support, and we happen to sometimes associate those usage 
> > > patterns with typical usage of native apps vs of browser apps. For 
> > > example, browser login on a borrowed device can easily leak over to being 
> > > app authorization - the authentication/authorization are web-based 
> > > processes to achieve SSO.
> > >
> > > I have been working on some guidance here around token lifetimes and 
> > > policies, but I don’t know whether that brings in too much AS/OP business 
> > > logic (and, likely implied product/deployment features) to be industry 
> > > practices.
> > >
> > > -DW
> > >
> > > > On May 17, 2018, at 10:23 AM, Hannes Tschofenig 
> > > > <hannes.tschofe...@arm.com (mailto:hannes..tschofe...@arm.com)> wrote:
> > > >
> > > > Hi Brock,
> > > >
> > > > there have been several attempts to start writing some guidance but so 
> > > > far we haven’t gotten too far.
> > > > IMHO it would be great to have a document.
> > > >
> > > > Ciao
> > > > Hannes
> > > >
> > > > From: OAuth [mailto:oauth-boun...@ietf.org] On Behalf Of Brock Allen
> > > > Sent: 17 May 2018 14:57
> > > > To: oauth@ietf.org (mailto:oauth@ietf.org)
> > > > Subject: [OAUTH-WG] is updated guidance needed for JS/SPA apps?
> > > >
> > > > Much like updated guidance was provided with the "OAuth2 for native 
> > > > apps" RFC, should there be one for "browser-based client-side JS apps"? 
> > > > I ask because google is actively discouraging the use of implicit flow:
> > > >
> > > > https://github.com/openid/AppAuth-JS/issues/59#issuecomment-389639290
> > > >
> > > > >From what I can tell, the complaints with implicit are:
> > > > * access token in URL
> > > > * access token in browser history
> > > > * iframe complexity when using prompt=none to "refresh" access tokens
> > > >
> > > > But this requires:
> > > > * AS/OP to support PKCE
> > > > * AS/OP to support CORS
> > > > * user-agent must support CORS
> > > > * AS/OP to maintain short-lived refresh tokens
> > > > * AS/OP must aggressively revoke refresh tokens at user signout (which 
> > > > is not something OAuth2 "knows" about)
> > > > * if the above point can't work, then client must proactively use 
> > > > revocation endpoint if/when user triggers logout
> > > >
> > > > Any use in discussing this?
> > > >
> > > > -Brock
> > > >
> > > > IMPORTANT NOTICE: The contents of this email and any attachments are 
> > > > confidential and may also be privileged. If you are not the intended 
> > > > recipient, please notify the sender immediately and do not disclose the 
> > > > contents to any other person, use it for any purpose, or store or copy 
> > > > the information in any medium. Thank you. 
> > > > _______________________________________________
> > > > OAuth mailing list
> > > > OAuth@ietf.org (mailto:OAuth@ietf.org)
> > > > https://www.ietf.org/mailman/listinfo/oauth
> >
> >
> >
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org (mailto:OAuth@ietf.org)
> > https://www.ietf.org/mailman/listinfo/oauth
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth

Attachment: signature.asc
Description: PGP signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to