Re: [http-state] parser rules of draft-ietf-httpstate-cookie-22

Adam Barth <ietf@adambarth.com> Thu, 24 February 2011 22:29 UTC

Return-Path: <ietf@adambarth.com>
X-Original-To: http-state@core3.amsl.com
Delivered-To: http-state@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 64FE63A6808 for <http-state@core3.amsl.com>; Thu, 24 Feb 2011 14:29:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.829
X-Spam-Level:
X-Spam-Status: No, score=-2.829 tagged_above=-999 required=5 tests=[AWL=0.148, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ex0nCLqZclE8 for <http-state@core3.amsl.com>; Thu, 24 Feb 2011 14:29:03 -0800 (PST)
Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by core3.amsl.com (Postfix) with ESMTP id 185913A687A for <http-state@ietf.org>; Thu, 24 Feb 2011 14:29:02 -0800 (PST)
Received: by wyb42 with SMTP id 42so1114533wyb.31 for <http-state@ietf.org>; Thu, 24 Feb 2011 14:29:53 -0800 (PST)
Received: by 10.227.147.14 with SMTP id j14mr1380568wbv.98.1298586593178; Thu, 24 Feb 2011 14:29:53 -0800 (PST)
Received: from mail-iy0-f172.google.com (mail-iy0-f172.google.com [209.85.210.172]) by mx.google.com with ESMTPS id w25sm1188wbd.11.2011.02.24.14.29.51 (version=SSLv3 cipher=OTHER); Thu, 24 Feb 2011 14:29:52 -0800 (PST)
Received: by iyj8 with SMTP id 8so634801iyj.31 for <http-state@ietf.org>; Thu, 24 Feb 2011 14:29:50 -0800 (PST)
Received: by 10.231.40.1 with SMTP id i1mr2298225ibe.71.1298586590094; Thu, 24 Feb 2011 14:29:50 -0800 (PST)
MIME-Version: 1.0
Received: by 10.231.40.7 with HTTP; Thu, 24 Feb 2011 14:29:20 -0800 (PST)
In-Reply-To: <D2187615-4E0C-4C3B-B5C7-A0A8CCD9FA0F@gbiv.com>
References: <20110204184735.26023.qmail@mm01.prod.mesa1.secureserver.net> <AANLkTi=qBVkGwMHqAidtwP5_A8pPrF-Y9MV4jgYS5_QM@mail.gmail.com> <7384878F-C44A-42A4-9694-1BB1C18AA5E6@gbiv.com> <AANLkTinFq7bE_e3SSgdjuFvZ8hGn1xy4Hc1VKwc=vp1D@mail.gmail.com> <49225418-A1AF-4299-8C4F-2E608D34265D@gbiv.com> <AANLkTimrJF3LFR4t4j=U2L33kFh+wf-R=sjjwexcmyPi@mail.gmail.com> <26240DE2-4DD3-4863-81B1-635D34BA4AE4@gbiv.com> <AANLkTikzB=VORtn7xiG2JY8ymTjk4epC9huZTC-s0nzq@mail.gmail.com> <4D5AEE94.6010303@gmx.de> <AANLkTimkmZ99qDcXB6=-PGtXq6WQ7+RSreRwsBAHryEj@mail.gmail.com> <DA7A626A-9613-4A49-8A46-8096F7F465B4@gbiv.com> <AANLkTi=aX26NgDx3J0zk6a6H-Fg-9hyuBhfwvVW5nBiH@mail.gmail.com> <AANLkTinnySHEXvaQSxoUAKNaPWThDWdJwnhvCdVfa5Vr@mail.gmail.com> <1E7DE6DF-864A-48AF-B9A3-698DEF4B3B2D@gbiv.com> <4D6590F4.6010505@stpeter.im> <94DA5CF6-88AB-43BD-99AE-921BCA98C7A3@gbiv.com> <AANLkTikxOBCgiAwvg3z2DwyHtJXhTK1=6ipTo16csKr9@mail.gmail.com> <4D66C718.3000300@stpeter.im> <AANLkTim18Lu-_8+OB_oXyRK_x6aPV++m2=ZgnahNSLvK@mail.gmail.com> <D2187615-4E0C-4C3B-B5C7-A0A8CCD9FA0F@gbiv.com>
From: Adam Barth <ietf@adambarth.com>
Date: Thu, 24 Feb 2011 14:29:20 -0800
Message-ID: <AANLkTimSTYBD7Qx9G-hS7fSFGWj3_s6JJiih4ZXLDmDC@mail.gmail.com>
To: "Roy T. Fielding" <fielding@gbiv.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: http-state State WG <http-state@ietf.org>
Subject: Re: [http-state] parser rules of draft-ietf-httpstate-cookie-22
X-BeenThere: http-state@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discuss HTTP State Management Mechanism <http-state.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/http-state>, <mailto:http-state-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/http-state>
List-Post: <mailto:http-state@ietf.org>
List-Help: <mailto:http-state-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/http-state>, <mailto:http-state-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Feb 2011 22:29:05 -0000

On Thu, Feb 24, 2011 at 2:21 PM, Roy T. Fielding <fielding@gbiv.com> wrote:
> On Feb 24, 2011, at 1:50 PM, Adam Barth wrote:
>> On Thu, Feb 24, 2011 at 1:31 PM, Roy T. Fielding <fielding@gbiv.com> wrote:
>>> If we would like to limit the use of DQUOTE to how it was limited
>>> in prior RFCs (matching outer pair), then I suggest
>>>
>>>  cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
>>>  cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-7E
>>>
>>> since that does cover all current usage that I am aware of and
>>> doesn't allow for odd usages of DQUOTE that might be misinterpreted
>>> by parsers that did not implement the Netscape spec but did
>>> implement one of the RFCs.
>>
>> DQUOTE is a cargo cult.  Matching DQUOTEs, as above, are less
>> problematic although they do have interoperability problems.  For
>> example, some user agents will incorrectly parse
>>
>> Set-Cookie: foo="bar\"; Secure
>>
>> (allowed by the grammar above) and will not interpret this header as
>> containing a Secure cookie.  If you insist on DQUOTE, we'll probably
>> be better off excluding %x5C from cookie-octet.
>
> Right, that's because the RFCs allowed backslash quoting by referring
> to the quoted-string production of HTTP.  Given the choice, I'd rather
> lose backslash than DQUOTE.  I haven't seen any Windows pathnames
> included in cookie values and sending such data would be unwise.
> Excluding %x5C should be okay.
>
>  cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
>  cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
>                   ; ASCII characters excluding CTLs, whitespace,
>                   ; DQUOTE, comma, semicolon, and backslash

Works for me.  Thanks Roy.

Adam