One more requirement from my perspective, and one question below. On Fri, Oct 1, 2021 at 2:50 AM Yoav Weiss <yoavwe...@chromium.org> wrote:
> *LGTM1* > > Thank you for doing this analysis! 2/550K is significantly less than 80% :P > > I believe that puts us at ~0.00036%, and the actual number of affected > sites (as opposed to workers) is an order of magnitude lower. Also, there's > no particular reason to believe HA is unrepresentative for this particular > change. (as I wouldn't expect main page workers to vary vastly from workers > in other pages) > > That makes me agree with your assessment of this being low risk. > > On Fri, Oct 1, 2021 at 10:12 AM Antonio Sartori < > antoniosart...@chromium.org> wrote: > >> 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 >>>>>>>>>> >>>>>>>>> I agree that a TAG review is not applicable in this case, because the behavior is already in an agreed-upon specification and one browser is already shipping the behavior. Am I correct that the specification in HTML covers all the behaviors in this intent? >>>>>>>>>> >>>>>>>>>> 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 >>>>> >>>> Please ask for a signal from WebKit. >>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>>>> 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/CAL5BFfX7OJhyuHziAv4s66%2B_wwK3GWKXB1Mb5fmcR3B4EhsqhA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfX7OJhyuHziAv4s66%2B_wwK3GWKXB1Mb5fmcR3B4EhsqhA%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/CAOMQ%2Bw97hCiPAkvJc2-1nODZa95Nav-7N6mefxDpY-O8a4RPoQ%40mail.gmail.com.