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/CAL5BFfVor9rcydTwksb9xFdGxaNrNkHjDdGjfKgRF6pHpMqEsw%40mail.gmail.com.

Reply via email to