On Thu, Dec 2, 2021 at 8:14 PM Andrew Williams <awil...@chromium.org> wrote:

> Thanks for the link, Daniel, and thank you to Mike as well for sending me
> a Chrome Enterprise PoC to reach out to.
>
> Yoav, do you think waiting two or three months between when we implement
> DevTools Issues / deprecation reports for this and when we do the removal
> would be sufficient?
>

That sounds reasonable to me. The known risk seems low, I'm mostly
concerned about the unknown risk. I'm hoping that a couple of months of
deprecation reports + enterprise policy can help us reduce risks on that
front.


> Is there a precedent for the minimum amount of time to provide notice for
> changes like this that don't seem like they will have widespread impact but
> that we want to proceed with caution on nonetheless?
>
> -Andrew
>
> On Wed, Dec 1, 2021 at 4:02 PM Yoav Weiss <yoavwe...@chromium.org> wrote:
>
>>
>>
>> On Wed, Dec 1, 2021 at 7:02 PM Andrew Williams <awil...@chromium.org>
>> wrote:
>>
>>> Thanks for the LGTMs Yoav, Mike, and Daniel!
>>>
>>> Yoav, we haven't implemented warnings of any kind (DevTools Issues or
>>> deprecation reports via the Reporting API) for this yet...
>>>
>>
>> That part seems paramount before starting with the actual removal. What
>> timelines do you have in mind?
>>
>>
>>> This effort has been on the backburner but I aim to revisit it soon.
>>> Also, I'm happy to reach out to Chrome Enterprise about this - do you have
>>> a recommendation regarding a good PoC? Also, our plan is still to implement
>>> this behind a feature flag that could be disabled via Finch in the event
>>> that significant breakage is encountered (although I know Finch updates are
>>> not a panacea).
>>>
>>> -Andrew
>>>
>>> On Wed, Dec 1, 2021 at 7:26 AM Daniel Bratell <bratel...@gmail.com>
>>> wrote:
>>>
>>>> LGTM3
>>>>
>>>> /Daniel
>>>> On 2021-12-01 12:31, Mike West wrote:
>>>>
>>>> LGTM2, with less caution than Yoav. :)
>>>>
>>>> This seems safe to me, and philosophically correct for the platform.
>>>> Good luck shipping it!
>>>>
>>>> -mike
>>>>
>>>>
>>>> On Wed, Dec 1, 2021 at 11:41 AM Yoav Weiss <yoavwe...@chromium.org>
>>>> wrote:
>>>>
>>>>> LGTM1 to ship given the low numbers, although we still want to do this
>>>>> carefully.
>>>>>
>>>>> Are such cookies currently issuing deprecation reports? Have we talked
>>>>> to Chrome Enterprise folks about their thoughts on adding an enterprise
>>>>> policy?
>>>>>
>>>>> On Tuesday, November 30, 2021 at 2:17:27 PM UTC+1 Andrew Williams
>>>>> wrote:
>>>>>
>>>>>> Regarding cookie strings that get truncated in Chrome today but that
>>>>>> still get treated as valid:
>>>>>>
>>>>>> 0.0007 % of valid cookie strings were truncated by a \x0a character
>>>>>> <0.0001 % of valid cookie strings were truncated by a \x0d character
>>>>>> <0.0001 % of valid cookie strings were truncated by a \x00 character
>>>>>>
>>>>>> Thus, with the proposed change to reject cookie strings containing
>>>>>> any of these characters, 0.0007% of cookie strings would be rejected.
>>>>>>
>>>>>> -Andrew
>>>>>>
>>>>>> On Wed, Nov 24, 2021 at 12:14 PM Andrew Williams <
>>>>>> awil...@chromium.org> wrote:
>>>>>>
>>>>>>> Hi Chris,
>>>>>>>
>>>>>>> We've collected 7 days worth of metrics since M96 went live, and the
>>>>>>> number of cookie strings containing a \x00, \x0d, or \x0a character is 
>>>>>>> very
>>>>>>> small compared to the total number of cookie strings processed.  I'll 
>>>>>>> post
>>>>>>> the percentages here once I get approval to do so, likely next week 
>>>>>>> given
>>>>>>> the holiday in the U.S..
>>>>>>>
>>>>>>> -Andrew
>>>>>>>
>>>>>>> On Wed, Nov 24, 2021 at 11:29 AM Chris Harrelson <
>>>>>>> chris...@chromium.org> wrote:
>>>>>>>
>>>>>>>> Hi Andrew,
>>>>>>>>
>>>>>>>> M96 has now shipped. Is the UseCounter data now available?
>>>>>>>>
>>>>>>>> On Thu, Nov 4, 2021 at 7:33 PM Andrew Williams <
>>>>>>>> awil...@chromium.org> wrote:
>>>>>>>>
>>>>>>>>> Hi Daniel,
>>>>>>>>>
>>>>>>>>> Thanks for following up on this. UMA metrics to count the
>>>>>>>>> prevalence of \x00, \x0d, and \x0a characters in cookie strings will 
>>>>>>>>> roll
>>>>>>>>> out with the M96 release.  We'll post back here once those metrics are
>>>>>>>>> available.
>>>>>>>>>
>>>>>>>>> Regarding deprecation warnings, we've mapped out how to generate
>>>>>>>>> DevTools Issues that would warn developers when cookies containing 
>>>>>>>>> these
>>>>>>>>> characters are detected, but we haven't implemented anything yet.  
>>>>>>>>> Also, we
>>>>>>>>> haven't implemented the sending of deprecation reports yet. Both are 
>>>>>>>>> still
>>>>>>>>> on our radar, though.
>>>>>>>>>
>>>>>>>>> -Andrew
>>>>>>>>>
>>>>>>>>> On Thu, Nov 4, 2021 at 2:37 PM Daniel Bratell <bratel...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> The last thing happening in this thread was that we decided to
>>>>>>>>>> wait for data. What is the current status of those usecounters, have 
>>>>>>>>>> they
>>>>>>>>>> reached the user base now?
>>>>>>>>>>
>>>>>>>>>> /Daniel
>>>>>>>>>> On 2021-09-20 07:59, Yoav Weiss wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Sep 17, 2021 at 6:36 PM Steven Bingler <
>>>>>>>>>> bing...@chromium.org> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Ian and Yoav,
>>>>>>>>>>>
>>>>>>>>>>> I believe the general guidance now for warning users of some
>>>>>>>>>>> change is to use DevTools Issues rather than console warnings. 
>>>>>>>>>>> Would using
>>>>>>>>>>> Issues, instead of console warnings, be acceptable to you? (This 
>>>>>>>>>>> would be
>>>>>>>>>>> in addition to the reports.)
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I don't believe the API OWNERS have a stand on console warnings
>>>>>>>>>> vs. issues for deprecations. Whatever is the general guidance that 
>>>>>>>>>> will
>>>>>>>>>> make this visible for developers seems good to me, assuming that 
>>>>>>>>>> issues are
>>>>>>>>>> prominent in the UI and manage to grab the median developer's 
>>>>>>>>>> attention.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Also, for posterity, it is possible to emit a console warning
>>>>>>>>>>> starting from EmitCookieWarningsAndMetrics() with a little work. We 
>>>>>>>>>>> used to
>>>>>>>>>>> do just that for SameSite warnings before we transitioned them to 
>>>>>>>>>>> DevTools
>>>>>>>>>>> Issue [1
>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src.git/+/1cc31f46c2e6ae658a97b92fbc8c556eba382d3e/content/browser/frame_host/cookie_utils.cc#128>]
>>>>>>>>>>> [2
>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src.git/+/1cc31f46c2e6ae658a97b92fbc8c556eba382d3e/content/browser/frame_host/render_frame_host_impl.cc#8309>]
>>>>>>>>>>> (many refactors ago). It looks like most of the necessary functions 
>>>>>>>>>>> still
>>>>>>>>>>> exist, so it shouldn't be too hard to recreate that functionality if
>>>>>>>>>>> needed.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Steven
>>>>>>>>>>>
>>>>>>>>>>> On Friday, September 17, 2021 at 8:45:10 AM UTC-7 Andrew
>>>>>>>>>>> Williams wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Thanks for the feedback Mike, Yoav, and Ian.  I will explore
>>>>>>>>>>>> the feasibility of using CountDeprecation (or something similar) 
>>>>>>>>>>>> from the
>>>>>>>>>>>> cookie-related code and will report back once I have an update on 
>>>>>>>>>>>> this.
>>>>>>>>>>>>
>>>>>>>>>>>> -Andrew
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Sep 10, 2021 at 10:11 AM Ian Clelland <
>>>>>>>>>>>> iclell...@chromium.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> That looks right -- that code path won't get you anywhere near
>>>>>>>>>>>>> adding a console message, as far as I can tell, but you would be 
>>>>>>>>>>>>> able to
>>>>>>>>>>>>> queue a report that way. Ideally, we'd have something like 
>>>>>>>>>>>>> deprecation.cc
>>>>>>>>>>>>> for browser-side that would handle the UMA as well as formatting 
>>>>>>>>>>>>> the report
>>>>>>>>>>>>> body consistently. As a first pass, until we have more that one
>>>>>>>>>>>>> browser-generated deprecation report, just generating and queuing 
>>>>>>>>>>>>> it would
>>>>>>>>>>>>> work.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Sep 10, 2021 at 6:42 AM Yoav Weiss <
>>>>>>>>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I may very well be wrong, but it seems like
>>>>>>>>>>>>>> CookieUtils::EmitCookieWarningsAndMetrics
>>>>>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/cookie_utils.cc;l=97;drc=8afc9e45a7e96afda8f22ef044d1e7cdc5a6f75a;bpv=1;bpt=1>
>>>>>>>>>>>>>>  has
>>>>>>>>>>>>>> the right plumbing to reach RenderFrameHost, and from it, get a
>>>>>>>>>>>>>> ReportingSource
>>>>>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_host_impl.cc;l=1730;drc=8afc9e45a7e96afda8f22ef044d1e7cdc5a6f75a?q=RenderFrameHost&ss=chromium%2Fchromium%2Fsrc>
>>>>>>>>>>>>>>  that
>>>>>>>>>>>>>> can enable us to send
>>>>>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_host_impl.cc;l=10676;drc=8afc9e45a7e96afda8f22ef044d1e7cdc5a6f75a;bpv=1;bpt=1?q=RenderFrameHost&ss=chromium%2Fchromium%2Fsrc>
>>>>>>>>>>>>>> deprecation reports (even if through a different mechanism than
>>>>>>>>>>>>>> CountDeprecation).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Ian - thoughts on the above?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Sep 9, 2021 at 9:21 PM Mike West <mk...@chromium.org>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I don't think `countDeprecation` is going to work here,
>>>>>>>>>>>>>>> insofar as that's a Blink-layer concept, and the network stack 
>>>>>>>>>>>>>>> isn't going
>>>>>>>>>>>>>>> to have an understanding of page views or use counters or etc. 
>>>>>>>>>>>>>>> If we've
>>>>>>>>>>>>>>> wired things up such that deprecation reports can be triggered 
>>>>>>>>>>>>>>> from the
>>>>>>>>>>>>>>> network stack, lovely, but I'm not sure that's the case.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Another approach that might be reasonable to approach might
>>>>>>>>>>>>>>> be to roll this out on a percentage-basis, starting with a 
>>>>>>>>>>>>>>> substantial
>>>>>>>>>>>>>>> portion of beta, then rolling to stable iff we're confident in 
>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> experience?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> This feels like both the right directional and philosophical
>>>>>>>>>>>>>>> thing to do with cookies. I'd like to see it ship, and a staged 
>>>>>>>>>>>>>>> rollout
>>>>>>>>>>>>>>> might well be a reasonable way of gaining confidence in our 
>>>>>>>>>>>>>>> ability to do
>>>>>>>>>>>>>>> so?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -mike
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, Sep 9, 2021 at 1:03 PM Yoav Weiss <
>>>>>>>>>>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Sounds good! Can you please ping this thread once results
>>>>>>>>>>>>>>>> start coming in? Thanks! :)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Wednesday, September 8, 2021 at 3:59:36 AM UTC+2 Andrew
>>>>>>>>>>>>>>>> Williams wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Sounds good - we will add the CountDeprecation metrics.
>>>>>>>>>>>>>>>>> Thanks for the suggestion, Yoav, and thank you Ian for the 
>>>>>>>>>>>>>>>>> additional info.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -Andrew
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Fri, Sep 3, 2021 at 10:07 AM Ian Clelland <
>>>>>>>>>>>>>>>>> iclell...@chromium.org> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Fri, Sep 3, 2021 at 4:55 AM Yoav Weiss <
>>>>>>>>>>>>>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Hey Andrew,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Given that the metrics are not a superset of what you're
>>>>>>>>>>>>>>>>>>> trying to deprecate, could you please add
>>>>>>>>>>>>>>>>>>> CountDeprecation
>>>>>>>>>>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/deprecation.cc;drc=f6f22e82bcd0d50f390b23ee9688c58de5ae0bdc;bpv=1;bpt=1;l=702?q=deprecation&ss=chromium>
>>>>>>>>>>>>>>>>>>> metrics of the case you are intending to deprecate? That 
>>>>>>>>>>>>>>>>>>> would ensure .e.g
>>>>>>>>>>>>>>>>>>> deprecation reports are sent to folks that happen to have 
>>>>>>>>>>>>>>>>>>> such cookies.
>>>>>>>>>>>>>>>>>>> Even though you haven't really asked, from my
>>>>>>>>>>>>>>>>>>> perspective, it's also fine to add a console deprecation 
>>>>>>>>>>>>>>>>>>> message at this
>>>>>>>>>>>>>>>>>>> point, in parallel to the metrics.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> FYI, CountDeprecation will take care of adding that
>>>>>>>>>>>>>>>>>> console message for you, as well as:
>>>>>>>>>>>>>>>>>>  - Generating a report object which can be seen with a
>>>>>>>>>>>>>>>>>> ReportingObserver,
>>>>>>>>>>>>>>>>>>  - Sending that report to any configured endpoints for
>>>>>>>>>>>>>>>>>> the document, and
>>>>>>>>>>>>>>>>>>  - Counting the usage for UMA, so that we can track the
>>>>>>>>>>>>>>>>>> (hopefully) declining usage of the deprecated feature.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Ian
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Cheers :)
>>>>>>>>>>>>>>>>>>> Yoav
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Wednesday, September 1, 2021 at 5:05:44 PM UTC+2
>>>>>>>>>>>>>>>>>>> Andrew Williams wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Here is the percentage for the metric mentioned in my
>>>>>>>>>>>>>>>>>>>> last email: over a 7 day period, 0.00004% of cookies seen 
>>>>>>>>>>>>>>>>>>>> in the stable
>>>>>>>>>>>>>>>>>>>> version of Chrome had truncated names and/or values.
>>>>>>>>>>>>>>>>>>>> Ultimately our plan is to ship this feature behind a
>>>>>>>>>>>>>>>>>>>> kill switch that we could flip if major issues are 
>>>>>>>>>>>>>>>>>>>> reported. With that in
>>>>>>>>>>>>>>>>>>>> mind, and given the low number of truncated cookie 
>>>>>>>>>>>>>>>>>>>> names/values observed
>>>>>>>>>>>>>>>>>>>> via our existing metrics, would it make sense to implement 
>>>>>>>>>>>>>>>>>>>> and collect the
>>>>>>>>>>>>>>>>>>>> new metrics in parallel with rolling out the changes 
>>>>>>>>>>>>>>>>>>>> described in this
>>>>>>>>>>>>>>>>>>>> I2P&S? Or do you think taking the more cautious approach 
>>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>> implementing/collecting the new metrics before landing 
>>>>>>>>>>>>>>>>>>>> this change is a
>>>>>>>>>>>>>>>>>>>> better way forward (despite taking more time)?
>>>>>>>>>>>>>>>>>>>> -Andrew
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Fri, Aug 27, 2021 at 1:45 PM Andrew Williams <
>>>>>>>>>>>>>>>>>>>> awil...@chromium.org> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Thanks for the feedback/questions Yoav and Daniel.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> We have some metrics
>>>>>>>>>>>>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/700dc7fe1578ab5e0e50a6304f2a1960005b8f8b:tools/metrics/histograms/metadata/cookie/histograms.xml;l=56;bpv=1;bpt=0>
>>>>>>>>>>>>>>>>>>>>> on Chrome's existing behavior to truncate cookie lines 
>>>>>>>>>>>>>>>>>>>>> containing \x00,
>>>>>>>>>>>>>>>>>>>>> \x0d, and \x0a (specifically, in cases where the 
>>>>>>>>>>>>>>>>>>>>> truncation affects the
>>>>>>>>>>>>>>>>>>>>> cookie name or the cookie value).  The percentage of 
>>>>>>>>>>>>>>>>>>>>> cookies with truncated
>>>>>>>>>>>>>>>>>>>>> names or values is quite low, although I'm still waiting 
>>>>>>>>>>>>>>>>>>>>> on approval to
>>>>>>>>>>>>>>>>>>>>> release the exact percentage.  We don't have any metrics 
>>>>>>>>>>>>>>>>>>>>> for cases where
>>>>>>>>>>>>>>>>>>>>> truncation affected cookie attribute parsing (for 
>>>>>>>>>>>>>>>>>>>>> example, the malicious
>>>>>>>>>>>>>>>>>>>>> case this intent aims to address) or where truncation was 
>>>>>>>>>>>>>>>>>>>>> harmless (for
>>>>>>>>>>>>>>>>>>>>> example, a newline as the last character in the cookie 
>>>>>>>>>>>>>>>>>>>>> line), though.
>>>>>>>>>>>>>>>>>>>>> Especially for the latter case, it does seem plausible 
>>>>>>>>>>>>>>>>>>>>> that certain sites
>>>>>>>>>>>>>>>>>>>>> could be constructing cookie lines in such a way that 
>>>>>>>>>>>>>>>>>>>>> control characters
>>>>>>>>>>>>>>>>>>>>> slip in unnoticed.  We will add new metrics to cover 
>>>>>>>>>>>>>>>>>>>>> these cases so that we
>>>>>>>>>>>>>>>>>>>>> can better predict the level of breakage that these 
>>>>>>>>>>>>>>>>>>>>> changes may have.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> -Andrew
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Thu, Aug 26, 2021 at 2:22 PM Daniel Bratell <
>>>>>>>>>>>>>>>>>>>>> bratel...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Even if browsers are currently slightly incompatible,
>>>>>>>>>>>>>>>>>>>>>> it seems this change will short term make them more 
>>>>>>>>>>>>>>>>>>>>>> incompatible. As Yoav
>>>>>>>>>>>>>>>>>>>>>> said, it would be good to have an idea about how common 
>>>>>>>>>>>>>>>>>>>>>> this is, i.e. how
>>>>>>>>>>>>>>>>>>>>>> often will cookies that are today truncated instead be 
>>>>>>>>>>>>>>>>>>>>>> rejected?
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> /Daniel
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 2021-08-25 16:18, Yoav Weiss wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Hey Andrew! Thanks for working on this, this seems
>>>>>>>>>>>>>>>>>>>>>> like a significant compatibility gap (with security 
>>>>>>>>>>>>>>>>>>>>>> implications) that
>>>>>>>>>>>>>>>>>>>>>> would be great to close.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On Tuesday, August 24, 2021 at 3:45:50 PM UTC+2
>>>>>>>>>>>>>>>>>>>>>> Andrew Williams wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Contact emails awil...@chromium.org,
>>>>>>>>>>>>>>>>>>>>>>> miketa...@chromium.org Explainer
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> https://github.com/httpwg/http-extensions/issues/1531
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> https://github.com/httpwg/http-extensions/pull/1589
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Specification
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> https://github.com/httpwg/http-extensions/blob/main/draft-ietf-httpbis-rfc6265bis.md
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Summary
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Updates how control characters in cookie data are
>>>>>>>>>>>>>>>>>>>>>>> handled. Specifically, the tab character is now 
>>>>>>>>>>>>>>>>>>>>>>> permitted, but all other
>>>>>>>>>>>>>>>>>>>>>>> control characters cause the entire cookie to be 
>>>>>>>>>>>>>>>>>>>>>>> rejected (previously the
>>>>>>>>>>>>>>>>>>>>>>> \x00, \x0D, and \x0A characters in a cookie line caused 
>>>>>>>>>>>>>>>>>>>>>>> it to be truncated
>>>>>>>>>>>>>>>>>>>>>>> instead of rejected entirely, which could have enabled 
>>>>>>>>>>>>>>>>>>>>>>> malicious behavior
>>>>>>>>>>>>>>>>>>>>>>> in certain circumstances). This behavior is also in 
>>>>>>>>>>>>>>>>>>>>>>> line with the latest
>>>>>>>>>>>>>>>>>>>>>>> drafts of RFC6265bis.
>>>>>>>>>>>>>>>>>>>>>>> Blink component
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Internals>Network>Cookies
>>>>>>>>>>>>>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ENetwork%3ECookies>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Motivation
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> In the case where attacker controlled data is used
>>>>>>>>>>>>>>>>>>>>>>> to set a new cookie, having certain control characters 
>>>>>>>>>>>>>>>>>>>>>>> truncate the cookie
>>>>>>>>>>>>>>>>>>>>>>> line could result in security-related cookie attributes 
>>>>>>>>>>>>>>>>>>>>>>> being ignored.
>>>>>>>>>>>>>>>>>>>>>>> This behavior may also lead to cookie data corruption 
>>>>>>>>>>>>>>>>>>>>>>> when control
>>>>>>>>>>>>>>>>>>>>>>> characters are introduced, which may cause 
>>>>>>>>>>>>>>>>>>>>>>> unpredictable behavior on the
>>>>>>>>>>>>>>>>>>>>>>> application side (more so than cookies not being set, 
>>>>>>>>>>>>>>>>>>>>>>> which is a case that
>>>>>>>>>>>>>>>>>>>>>>> applications should already handle). Having control 
>>>>>>>>>>>>>>>>>>>>>>> characters result in
>>>>>>>>>>>>>>>>>>>>>>> the whole cookie being rejected helps mitigate these 
>>>>>>>>>>>>>>>>>>>>>>> concerns and aligns
>>>>>>>>>>>>>>>>>>>>>>> Chrome with RFC6265bis.  For the tab character, 
>>>>>>>>>>>>>>>>>>>>>>> although it falls in the
>>>>>>>>>>>>>>>>>>>>>>> control character range (\x00 - \x1F, \x7F), it’s a 
>>>>>>>>>>>>>>>>>>>>>>> printable character and
>>>>>>>>>>>>>>>>>>>>>>> allowed by other browsers. Treating it the same way 
>>>>>>>>>>>>>>>>>>>>>>> that the space
>>>>>>>>>>>>>>>>>>>>>>> character is treated makes sense intuitively, 
>>>>>>>>>>>>>>>>>>>>>>> eliminates a potential
>>>>>>>>>>>>>>>>>>>>>>> fingerprinting vector, and aligns Chrome with 
>>>>>>>>>>>>>>>>>>>>>>> RFC6265bis.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> In the past, moving to a stricter models that forbade
>>>>>>>>>>>>>>>>>>>>>> certain characters resulted in at least some breakage of 
>>>>>>>>>>>>>>>>>>>>>> non-malicious
>>>>>>>>>>>>>>>>>>>>>> content. I doubt this one would be significantly 
>>>>>>>>>>>>>>>>>>>>>> different.
>>>>>>>>>>>>>>>>>>>>>> Do you have a sense of the resulting breakage? If
>>>>>>>>>>>>>>>>>>>>>> not, I think it'd make sense to add metrics to our 
>>>>>>>>>>>>>>>>>>>>>> cookie parsing algorithm
>>>>>>>>>>>>>>>>>>>>>> and see what that breakage would look like.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Initial public proposal TAG review
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> N/A
>>>>>>>>>>>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/g/blink-api-owners-discuss/c/uBxq9uCpKx0/m/A5LI0NbyAAAJ>:
>>>>>>>>>>>>>>>>>>>>>>> this change is already specified in RFC 6265bis and is 
>>>>>>>>>>>>>>>>>>>>>>> a relatively minor
>>>>>>>>>>>>>>>>>>>>>>> change to what's already implemented in Chrome (to 
>>>>>>>>>>>>>>>>>>>>>>> improve spec compliance).
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I agree that this change is in lower layers than
>>>>>>>>>>>>>>>>>>>>>> those the TAG usually deals with.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> TAG review status Not applicable
>>>>>>>>>>>>>>>>>>>>>>> Risks
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> N/A
>>>>>>>>>>>>>>>>>>>>>>> Interoperability and Compatibility
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> WebKit / Safari:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - All control characters except the tab character
>>>>>>>>>>>>>>>>>>>>>>> cause the cookie to be rejected if present in the name 
>>>>>>>>>>>>>>>>>>>>>>> and cause the rest
>>>>>>>>>>>>>>>>>>>>>>> of the cookie line to be truncated if present in the 
>>>>>>>>>>>>>>>>>>>>>>> value
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Gecko / Firefox:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - 0x00 in the cookie value causes the rest of the
>>>>>>>>>>>>>>>>>>>>>>> value to be truncated (but subsequent attributes are 
>>>>>>>>>>>>>>>>>>>>>>> preserved)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - 0x00 in the cookie name causes the rest of the
>>>>>>>>>>>>>>>>>>>>>>> name and the value to be truncated (but subsequent 
>>>>>>>>>>>>>>>>>>>>>>> attributes are preserved)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - 0x0d and 0x0a cause the entire cookie line to be
>>>>>>>>>>>>>>>>>>>>>>> truncated (attributes ignored)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - 0x01 through 0x09 (the tab character), 0x0b
>>>>>>>>>>>>>>>>>>>>>>> through 0x0c, and 0x0e through 0x1f cause the cookie to 
>>>>>>>>>>>>>>>>>>>>>>> be rejected if they
>>>>>>>>>>>>>>>>>>>>>>> are present in the name, but are allowed in the cookie 
>>>>>>>>>>>>>>>>>>>>>>> value
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>  - 0x7f is allowed in the cookie name and cookie
>>>>>>>>>>>>>>>>>>>>>>> value
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> The following issues exist reporting these
>>>>>>>>>>>>>>>>>>>>>>> differences:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>    -
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>    Firefox -
>>>>>>>>>>>>>>>>>>>>>>>    
>>>>>>>>>>>>>>>>>>>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1702031#c1
>>>>>>>>>>>>>>>>>>>>>>>    -
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>    WebKit -
>>>>>>>>>>>>>>>>>>>>>>>    https://bugs.webkit.org/show_bug.cgi?id=229088
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Allowing tab characters in cookie names aligns
>>>>>>>>>>>>>>>>>>>>>>> Chrome with Safari but not Firefox, and allowing tabs 
>>>>>>>>>>>>>>>>>>>>>>> in the cookie value
>>>>>>>>>>>>>>>>>>>>>>> aligns Chrome with both.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Regarding control characters (not including tab),
>>>>>>>>>>>>>>>>>>>>>>> what will change in Chrome is the handling of 0x00, 
>>>>>>>>>>>>>>>>>>>>>>> 0x0d, and 0x0a
>>>>>>>>>>>>>>>>>>>>>>> characters.  Today, Chrome truncates cookie lines when 
>>>>>>>>>>>>>>>>>>>>>>> these characters are
>>>>>>>>>>>>>>>>>>>>>>> encountered, and this intent proposes having these 
>>>>>>>>>>>>>>>>>>>>>>> characters result in
>>>>>>>>>>>>>>>>>>>>>>> cookie rejection instead.  Rejecting cookie names 
>>>>>>>>>>>>>>>>>>>>>>> containing these
>>>>>>>>>>>>>>>>>>>>>>> characters aligns Chrome with Safari but not Firefox, 
>>>>>>>>>>>>>>>>>>>>>>> but rejecting cookie
>>>>>>>>>>>>>>>>>>>>>>> values containing these characters is inconsistent with 
>>>>>>>>>>>>>>>>>>>>>>> existing Safari or
>>>>>>>>>>>>>>>>>>>>>>> Firefox behavior.  However, these changes unify 
>>>>>>>>>>>>>>>>>>>>>>> Chrome’s control character
>>>>>>>>>>>>>>>>>>>>>>> handling behavior, better align Chrome with RFC6265bis, 
>>>>>>>>>>>>>>>>>>>>>>> and also help
>>>>>>>>>>>>>>>>>>>>>>> prevent a class of cookie attribute removal attacks 
>>>>>>>>>>>>>>>>>>>>>>> (when malicious input
>>>>>>>>>>>>>>>>>>>>>>> is used to build a cookie line under certain 
>>>>>>>>>>>>>>>>>>>>>>> conditions).
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Gecko: N/A - these changes seem too small to justify
>>>>>>>>>>>>>>>>>>>>>>> this effort WebKit: N/A - these changes seem too
>>>>>>>>>>>>>>>>>>>>>>> small to justify this effort
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I somewhat agree that asking for a position here
>>>>>>>>>>>>>>>>>>>>>> would be an overkill, but would love to get a signal 
>>>>>>>>>>>>>>>>>>>>>> from both Mozilla and
>>>>>>>>>>>>>>>>>>>>>> Safari on their intents to align with the RFC. (the 
>>>>>>>>>>>>>>>>>>>>>> former seems more
>>>>>>>>>>>>>>>>>>>>>> likely than the latter, as this seems like a CFNetwork 
>>>>>>>>>>>>>>>>>>>>>> issue)
>>>>>>>>>>>>>>>>>>>>>> At the same time, the issues seem sufficient for that
>>>>>>>>>>>>>>>>>>>>>> purpose, assuming folks there respond.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Web developers: N/A - these changes are relatively
>>>>>>>>>>>>>>>>>>>>>>> small and are in alignment with the RFC, other 
>>>>>>>>>>>>>>>>>>>>>>> browsers, and/or existing
>>>>>>>>>>>>>>>>>>>>>>> behavior
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Yeah, developers are unlikely to be happy about this
>>>>>>>>>>>>>>>>>>>>>> from a breakage perspective, even if it'd reduce compat 
>>>>>>>>>>>>>>>>>>>>>> issues. The main
>>>>>>>>>>>>>>>>>>>>>> thing we can do about that is ensure breakage is minimal 
>>>>>>>>>>>>>>>>>>>>>> before shipping.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Debuggability
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> DevTools debugging support will be implemented along
>>>>>>>>>>>>>>>>>>>>>>> with this change. Rejected response cookies are already 
>>>>>>>>>>>>>>>>>>>>>>> shown in DevTools
>>>>>>>>>>>>>>>>>>>>>>> in the Network panel, with a status explaining why they 
>>>>>>>>>>>>>>>>>>>>>>> were rejected.
>>>>>>>>>>>>>>>>>>>>>>> Another status will be added to annotate cookies 
>>>>>>>>>>>>>>>>>>>>>>> rejected due to control
>>>>>>>>>>>>>>>>>>>>>>> characters.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>>>>>>>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>>>>>>>>>>>>>>>>>>>>>> ?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> In Progress -
>>>>>>>>>>>>>>>>>>>>>>> https://chromium-review.googlesource.com/c/chromium/src/+/3084521
>>>>>>>>>>>>>>>>>>>>>>> Flag name
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> UpdatedCookieControlCharacterChecks
>>>>>>>>>>>>>>>>>>>>>>> Requires code in //chrome?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> False
>>>>>>>>>>>>>>>>>>>>>>> Tracking bug
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1233602
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Estimated milestones
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> M96
>>>>>>>>>>>>>>>>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> https://www.chromestatus.com/feature/5709264560586752
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Requesting approval to ship?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Yes
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> This intent message was generated by Chrome
>>>>>>>>>>>>>>>>>>>>>>> Platform Status <https://www.chromestatus.com/>.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>> You received this message because you are subscribed
>>>>>>>>>>>>>>>>>>>>>> to the Google Groups "blink-dev" group.
>>>>>>>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving
>>>>>>>>>>>>>>>>>>>>>> emails from it, send an email to
>>>>>>>>>>>>>>>>>>>>>> blink-dev+unsubscr...@chromium.org.
>>>>>>>>>>>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e2de8b96-8878-47fe-99e2-5497b96c9adcn%40chromium.org
>>>>>>>>>>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e2de8b96-8878-47fe-99e2-5497b96c9adcn%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>> You received this message because you are subscribed
>>>>>>>>>>>>>>>>>>>>>> to the Google Groups "blink-dev" group.
>>>>>>>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving
>>>>>>>>>>>>>>>>>>>>>> emails from it, send an email to
>>>>>>>>>>>>>>>>>>>>>> blink-dev+unsubscr...@chromium.org.
>>>>>>>>>>>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/44805dc7-edd8-218d-dcbe-9c589509b633%40gmail.com
>>>>>>>>>>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/44805dc7-edd8-218d-dcbe-9c589509b633%40gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> You received this message because you are subscribed to
>>>>>>>>>>>>>>>>>>> the Google Groups "blink-dev" group.
>>>>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails
>>>>>>>>>>>>>>>>>>> from it, send an email to
>>>>>>>>>>>>>>>>>>> blink-dev+unsubscr...@chromium.org.
>>>>>>>>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fcb32661-cecb-4f5a-a29d-9f3cdfbc5395n%40chromium.org
>>>>>>>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fcb32661-cecb-4f5a-a29d-9f3cdfbc5395n%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>>>>> Google Groups "blink-dev" group.
>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails
>>>>>>>>>>>>>>>> from it, send an email to
>>>>>>>>>>>>>>>> blink-dev+unsubscr...@chromium.org.
>>>>>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/984b9bba-57f7-4145-9e1e-ee50601aae68n%40chromium.org
>>>>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/984b9bba-57f7-4145-9e1e-ee50601aae68n%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "blink-dev" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to blink-dev+unsubscr...@chromium.org.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEa0%2BkWGVtOGPxUqQfk5u5Ds9BfiR5Ks%3DjkBp8NQ9AS2w-cL9g%40mail.gmail.com
>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEa0%2BkWGVtOGPxUqQfk5u5Ds9BfiR5Ks%3DjkBp8NQ9AS2w-cL9g%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVv5OYCrKNF2N3mr-gFmdjtpv7LOVdV-wWoUw9fMXy4%2BQ%40mail.gmail.com.

Reply via email to