Sorry, of course. I just forgot. On Fri, Oct 1, 2021 at 9:30 AM Yoav Weiss <yoavwe...@chromium.org> wrote:
> Thanks!! > > On Fri, Oct 1, 2021 at 9:23 AM Antonio Sartori < > antoniosart...@chromium.org> wrote: > >> I did some more research in httparchive. By filtering out only >> interesting CSPs delivered by workers and comparing them with their owner >> document's CSP, I was left with only two entries (out of the total 457,780 >> worker requests) which might actually break. The details are in this >> document >> <https://docs.google.com/document/d/16_TiDx3MOE7uO6vMhE6qE1jN78ZzzvUsaqcV0Cb3G0E/edit?usp=sharing>. >> >> > > Could the doc be made public? > > >> Could this give us confidence that content won't break, even without >> adding user counters in the code? >> >> Regarding Safari, I did some more experiments and checked their code >> <https://github.com/WebKit/WebKit/blob/5f99dfc43d30d3af1cabbf24d111acbff994808b/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp#L60>. >> I would now say confidently that they do implement this. >> >> Thanks! >> >> On Wed, Sep 29, 2021 at 5:05 PM Yoav Weiss <yoavwe...@chromium.org> >> wrote: >> >>> >>> >>> On Wed, Sep 29, 2021 at 4:16 PM Antonio Sartori < >>> antoniosart...@chromium.org> wrote: >>> >>>> >>>> >>>> On Wed, Sep 29, 2021 at 2:50 PM Yoav Weiss <yoavwe...@chromium.org> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Wed, Sep 29, 2021 at 2:14 PM Antonio Sartori < >>>>> antoniosart...@chromium.org> wrote: >>>>> >>>>>> From a quick search through httparchive (data from >>>>>> httparchive.requests.2021_07_01_desktop) it looks like out >>>>>> of 549,668 outgoing requests for dedicated workers, 457,780 of them >>>>>> returned a Content-Security-Policy header (hence ~80%). As a comparison, >>>>>> from the same data it looks like ~15% of document requests return a >>>>>> Content-Security-Policy. >>>>>> >>>>> >>>>> That's a lot! >>>>> >>>>> >>>>>> >>>>>> Better data could be gathered by building some use counters in >>>>>> chromium's code. >>>>>> >>>>> >>>>> Unless there's particular urgency here, I think use-counters would >>>>> make sense here. That can give us confidence that content won't break as a >>>>> result of this change in CSP rule application. >>>>> >>>> >>>> Just to double-check that I understand correctly: For giving us >>>> confidence that content won't break, we would have to build a mechanism to >>>> check workers' response CSPs (without enforcing them) and report via use >>>> counters in case a resource which is currently allowed would have been >>>> blocked. This is what I was sketching below, and requires quite some >>>> implementation work, which I am not sure when we would be able to >>>> prioritize. >>>> >>> >>> Maybe I'm missing the mark, but wouldn't that implementation work be >>> something that's on path to what you'd need to implement anyway for this? >>> I certainly have no interest in making you do extra work, but with 80% >>> (!!) of workers currently having CSP headers, I'm concerned that mismatches >>> between the worker headers and the main document headers exist, which can >>> result in broken content. >>> I take your point that if such discrepancies exist, they are currently >>> reflected in broken content in e.g. Firefox. At the same time, I'd be more >>> comfortable with taking a decision here based on a bit more data. >>> >>> >>>> I don't think there is a particular urgency, although this is a bugfix >>>> and I believe this is a big security improvement, since it allows servers >>>> to have different policies on their main page and on the worker (so for >>>> example an application which needs eval inside a worker would not need to >>>> enable eval in the main document). >>>> >>>> >>>>> >>>>>> >>>>>> I have not looked into how often that would remove restrictions from >>>>>> existing web contents. I don't see an easy way to do it without adding >>>>>> code >>>>>> to chrome to check both the inherited and the response CSP for each >>>>>> outgoing request from a worker and report when the two checks mismatch. >>>>>> It >>>>>> is surely doable but I have the impression it might be overkilled in this >>>>>> case. >>>>>> >>>>>> Since the proposed behaviour is already implemented by Firefox (and >>>>>> it seems also by Safari), I believe the probability of this breaking >>>>>> something to be fairly low (developer would have noticed their websites >>>>>> not >>>>>> working on Firefox/Safari already). >>>>>> >>>>>> On Wed, Sep 29, 2021 at 1:21 PM Yoav Weiss <yoavwe...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> Have you looked into the compatibility implications of changing >>>>>>> behavior here? How often would that remove restrictions from existing >>>>>>> web >>>>>>> content? How often do dedicated workers currently get CSP headers which >>>>>>> will now be applied? >>>>>>> >>>>>>> On Mon, Sep 27, 2021 at 12:50 PM Antonio Sartori < >>>>>>> antoniosart...@chromium.org> wrote: >>>>>>> >>>>>>>> Contact emailsantoniosart...@chromium.org >>>>>>>> >>>>>>>> Specification >>>>>>>> https://html.spec.whatwg.org/#initialize-worker-policy-container >>>>>>>> >>>>>>>> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#csp_in_workers >>>>>>>> >>>>>>>> Summary >>>>>>>> >>>>>>>> Dedicated workers should be governed by the Content Security Policy >>>>>>>> delivered in their script response headers. Chrome incorrectly used to >>>>>>>> instead apply the Content Security Policy of the owner document. We >>>>>>>> would >>>>>>>> like to change chrome's behaviour to adhere to what is specified. >>>>>>>> >>>>>>>> >>>>>>>> For background, see the discussion on the github issue where this >>>>>>>> was agreed: https://github.com/w3c/webappsec-csp/issues/336 >>>>>>>> >>>>>>>> >>>>>>>> Blink componentBlink>SecurityFeature>ContentSecurityPolicy >>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ESecurityFeature%3EContentSecurityPolicy> >>>>>>>> >>>>>>>> TAG review >>>>>>>> >>>>>>>> TAG review statusNot applicable >>>>>>>> >>>>>>>> Risks >>>>>>>> >>>>>>>> >>>>>>>> Interoperability and Compatibility >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Gecko: Shipped/Shipping See also the discussion on the issue >>>>>>>> https://github.com/w3c/webappsec-csp/issues/336 >>>>>>>> >>>>>>>> WebKit: N/A >>>>>>>> >>>>>>> >>>>> Why N/A? >>>>> >>>> >>>> Because I am not totally sure. While Firefox argued publicly that this >>>> is how they believe CSPs for workers should work and this is what they >>>> implement, there was no signal from WebKit AFAIK. From some manual testing, >>>> it looks to me like WebKit implements this. Unfortunately our WPTs here are >>>> not so great, since many of them time out on Safari ( >>>> https://wpt.fyi/results/content-security-policy/inside-worker?label=experimental&label=master&aligned >>>> ). >>>> >>> >>> Would be good to ask for their official opinion: >>> https://bit.ly/blink-signals >>> >>> >>>> >>>> >>>>> >>>>> >>>>>> >>>>>>>> Web developers: Positive ( >>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1012640) >>>>>>>> This has been reported as a bug to chrome. >>>>>>>> >>>>>>>> >>>>>>>> Debuggability >>>>>>>> >>>>>>>> Warnings regarding Content Security Policy are and will continue to >>>>>>>> be reported in the devtools console. >>>>>>>> >>>>>>>> >>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>>>>> ?Yes >>>>>>>> >>>>>>>> Flag name >>>>>>>> >>>>>>>> Requires code in //chrome?False >>>>>>>> >>>>>>>> Tracking bug >>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1253267 >>>>>>>> >>>>>>>> Estimated milestones >>>>>>>> >>>>>>>> No milestones specified >>>>>>>> >>>>>>>> >>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>> https://chromestatus.com/feature/5715844005888000 >>>>>>>> >>>>>>>> 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/CAOzWxF5EX2mHofXHLK_V7VTQ5v%3DPcunu_BiF%2BzFJQTFy9DSwTQ%40mail.gmail.com >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOzWxF5EX2mHofXHLK_V7VTQ5v%3DPcunu_BiF%2BzFJQTFy9DSwTQ%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/CAOzWxF7En0MhS_9ajoOnT%2Bxym6hLAHRALigsUmh4_Hnnc0%2B9aw%40mail.gmail.com.