Yes but POST doesn't really work for in browser apps. If it is a server app it should be using the code flow with GET or POST as you like.
If we do a post message based binding it will be targeted at in browser applications. John B. On Fri, Jul 1, 2016 at 4:42 PM, Liyu Yi <liy...@gmail.com> wrote: > BTW, I do not see any significant performance concerns for post. Parsing > and executing the Javascript logic for post operation will be on the client > side, no extra server load is introduced. > > Plus post will remove the size restriction of the URL length. > > -- Liyu > > On Fri, Jul 1, 2016 at 1:35 PM, Liyu Yi <liy...@gmail.com> wrote: > >> Thanks for the great comments and advices. >> >> I think it is a good idea for the working group to revise the fragment >> part in the spec, since there might be public available tools already >> implemented this approach and people can end up with a solution with >> serious security loopholes. >> >> The re-append issue can be mitigate by a logic on Resource Server which >> carefully re-writes/removes the fragment in any redirect, if the the >> redirect can not be avoided. >> >> -- Liyu >> >> >> On Fri, Jul 1, 2016 at 11:33 AM, John Bradley <ve7...@ve7jtb.com> wrote: >> >>> This behaviour started changing around 2011 >>> >>> From HTTP/1.1 >>> See https://tools.ietf.org/html/rfc7231#section-7.1.2I >>> f the Location value provided in a 3xx (Redirection) response does >>> >>> not have a fragment component, a user agent MUST process the >>> redirection as if the value inherits the fragment component of the >>> URI reference used to generate the request target (i.e., the >>> redirection inherits the original reference's fragment, if any). >>> >>> For example, a GET request generated for the URI reference >>> "http://www.example.org/~tim" might result in a 303 (See Other) >>> response containing the header field: >>> >>> Location: /People.html#tim >>> >>> which suggests that the user agent redirect to >>> "http://www.example.org/People.html#tim” >>> >>> >>> Likewise, a GET request generated for the URI reference >>> "http://www.example.org/index.html#larry" might result in a 301 >>> (Moved Permanently) response containing the header field: >>> >>> Location: http://www.example.net/index.html >>> >>> which suggests that the user agent redirect to >>> "http://www.example.net/index.html#larry", preserving the original >>> fragment identifier. >>> >>> >>> >>> This blog also explores the change. >>> >>> https://blogs.msdn.microsoft.com/ieinternals/2011/05/16/url-fragments-and-redirects/ >>> >>> >>> On Jul 1, 2016, at 1:05 PM, Oleg Gryb <oleg_g...@yahoo.com> wrote: >>> >>> "Browsers now re-append fragments across 302 redirects unless they are >>> explicitly cleared this makes fragment encoding less safe than it was when >>> originally specified" - thanks Jim. Looks like a good reason for vetting >>> this flow out. >>> >>> John, >>> Please provide more details/links about re-appending fragments. >>> >>> Thanks, >>> Oleg. >>> >>> >>> ------------------------------ >>> *From:* Jim Manico <j...@manicode.com> >>> *To:* Oleg Gryb <o...@gryb.info> >>> *Cc:* "oauth@ietf.org" <oauth@ietf.org>; Liyu Yi <liy...@gmail.com> >>> *Sent:* Thursday, June 30, 2016 10:25 PM >>> *Subject:* Re: [OAUTH-WG] Security concern for URI fragment as Implicit >>> grant >>> >>> Oleg! Hello! Great to see you pop up here with a similar concern. >>> >>> John Bradley just answered this thread with the details I was looking >>> for (thanks John, hat tip your way). >>> >>> He also mentioned details about fragment leakage: >>> >>> "Browsers now re-append fragments across 302 redirects unless they are >>> explicitly cleared this makes fragment encoding less safe than it was when >>> originally specified" >>> >>> Again, I'm new here but I'm grateful for this conversation. >>> >>> Aloha, >>> -- >>> Jim Manico >>> @Manicode >>> >>> On Jul 1, 2016, at 1:24 AM, Oleg Gryb <oleg_g...@yahoo.com> wrote: >>> >>> We've discussed access tokens in URI back in 2010 ( >>> https://www.ietf.org/mail-archive/web/oauth/current/msg04043.html). >>> There were two major objectives when I was saying that it's not secure: >>> >>> 1. Fragment is not sent to a server by a browser. When I've asked if >>> this is true for every browser in the world, nobody was able to answer. >>> 2. Replacing with POST would mean a significant performance impact in >>> some high volume implementations (I think it was Goole folks who were >>> saying this, but I don't remember now). >>> >>> AFAIR, nobody was arguing about browsing history, so it's valid. >>> >>> So, 6 years later we're at square one with this and I hope that this >>> time the community will be more successful with getting rid of secrets in >>> URL. >>> >>> BTW, Jim, if you can come up with other scenarios when fragments can >>> leak, please share. It'll probably help the community with solving this >>> problem faster than in 6 years. >>> >>> Thanks, >>> Oleg. >>> >>> >>> ------------------------------ >>> *From:* Jim Manico <j...@manicode.com> >>> *To:* Liyu Yi <liy...@gmail.com>; oauth@ietf.org >>> *Sent:* Wednesday, June 29, 2016 7:30 AM >>> *Subject:* Re: [OAUTH-WG] Security concern for URI fragment as Implicit >>> grant >>> >>> > Shouldn’t it be more secure if we change to use a post method for >>> access token, similar to the SAML does? >>> I say yes. But please note I'm very new at this and someone with more >>> experience will have more to say or correct my comments. >>> Here are a few more details to consider. >>> 1) OAuth is a framework and not a standard, per se. Different >>> authorization servers will have different implementations that are not >>> necessarily compatible with other service providers. So there is no >>> standard to break, per se. >>> 2) Sensitive data in a URI is a bad idea. They leak all over the place >>> even over HTTPS. Even in fragments. >>> 3) Break the "rules" and find a way to submit sensitive data like access >>> tokens, session information or any other (even short term) sensitive data >>> in a secure fashion. This includes POST, JSON data payloads over PUT/PATCH >>> and other verbs - all over well configured HTTPS. >>> 4) If you really must submit sensitive data over GET , consider >>> JWT/JWS/JWE (with limited scopes/lifetimes) to provide message level >>> confidentiality and integrity. >>> Aloha, >>> >>> Jim Manico >>> Manicode Securityhttps://www.manicode.com >>> >>> >>> On 6/27/16 9:30 PM, Liyu Yi wrote: >>> >>> While we are working on a project with OAuth2 implementation, one >>> question arises from our engineers. >>> We noticed at >>> <https://tools.ietf.org/html/draft-ietf-oauth-v2-31#page-30> >>> https://tools.ietf.org/html/draft-ietf-oauth-v2-31#page-30, it is >>> specified that >>> >>> (C) Assuming the resource owner grants access, the authorization >>> server redirects the user-agent back to the client using the >>> redirection URI provided earlier. The redirection URI includes >>> the access token in the URI fragment. >>> >>> For my understanding, the browser keeps the URI fragment in the history, >>> and this introduces unexpected exposure of the access token. A user without >>> authorization for the resource can get the access token as long as he has >>> the access to the browser. This can happen in a shared computer in library, >>> or for an IT staff who works on other employee’s computer. >>> >>> Shouldn’t it be more secure if we change to use a post method for access >>> token, similar to the SAML does? >>> I feel there might be something I missed here. Any advices will be >>> appreciated. >>> >>> >>> _______________________________________________ >>> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth >>> >>> >>> -- >>> >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >>> >>> >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >>> >>> >>> >>> >> >
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth