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/CAL5BFfWo8VRaw_YHCj%2BUrqOAKSttkYM28KkSwJ4Pjv-QVRnXLA%40mail.gmail.com.