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.

Reply via email to