Thanks for reviewing!!

In discussions with Mozilla folk, we eventually landed on a very different
API shape
<https://github.com/w3c/webappsec-subresource-integrity/pull/129#issuecomment-2757716392>,
to enable them to expand the concept of "integrity policy", rather than
doing this as a one-off CSP directive. As a result, I'd need to revamp the
implementation and spec. I'll let y'all know when it's time to reapprove (I
can do that as a separate intent, if that would be more convenient)

On Wed, Mar 26, 2025 at 11:02 AM Chris Harrelson <chris...@chromium.org>
wrote:

> LGTM3
>
> On Tue, Mar 25, 2025 at 6:48 AM Mike Taylor <miketa...@chromium.org>
> wrote:
>
>>
>> On 3/24/25 10:24 PM, Domenic Denicola wrote:
>>
>>
>>
>> On Mon, Mar 24, 2025 at 4:37 PM Yoav Weiss (@Shopify) <
>> yoavwe...@chromium.org> wrote:
>>
>>>
>>>
>>> On Mon, Mar 24, 2025 at 6:45 AM Domenic Denicola <dome...@chromium.org>
>>> wrote:
>>>
>>>> Great to hear!
>>>>
>>>> I see you've already updated the spec PR. My instinct is that we should
>>>> give folks a week-ish to react to the new name, finish the spec review,
>>>> etc. What do you think?
>>>>
>>>
>>> Normally I would think this makes perfect sense. But given the 136
>>> branch point a week from now, I prefer one of the two options:
>>> * Enable the flag in 136 before it branches and revert in the unlikely
>>> case there's some disagreement on the spelling.
>>>
>>
>> This option sounds good to me. LGTM1.
>>
>> Me too, LGTM2
>>
>>
>>
>>> * Get help from Google folks to Finch enable it in 136 after branch
>>> point.
>>>
>>> Does that make sense?
>>>
>>>
>>>> (Also, I can't quite understand what's blocking the spec PR from
>>>> landing... I guess there's still some discussion about whether the bar is
>>>> "2 interested implementers" or "2 actively implementing implementers"?
>>>> Maybe it's worth poking to see if you can get more clarity on that?)
>>>>
>>>
>>> I believe it's held back on getting SRI L2 to FPWD
>>> <https://lists.w3.org/Archives/Public/public-webappsec/2025Mar/0011.html>
>>> (as a future Living Standard), and then potentially on getting a working
>>> mode agreed on, and for the PR to meet it. So it may take a while to land
>>> the PR.
>>>
>>> +Mike West <mk...@chromium.org> - Is my understanding correct?
>>>
>>>
>>>> On Mon, Mar 24, 2025 at 2:28 PM Yoav Weiss (@Shopify) <
>>>> yoavwe...@chromium.org> wrote:
>>>>
>>>>> Following discussions
>>>>> <https://github.com/w3c/webappsec/blob/main/meetings/2025/2025-03-19-minutes.md#require-sri-for-compatibility-and-spelling>
>>>>> at WebAppSec and the WAICT
>>>>> <https://docs.google.com/document/d/16-cvBkWYrKlZHXkWRFvKGEifdcMthUfv-LxIbg6bx2o/edit?tab=t.0>
>>>>> proposal, I'm renaming the directive to `integrity-required`. (CL
>>>>> <https://chromium-review.googlesource.com/c/chromium/src/+/6382018>)
>>>>>
>>>>> That would also reduce the compatibility risk to zero AFAICT.
>>>>>
>>>>> On Monday, March 10, 2025 at 10:55:02 AM UTC+1 Yoav Weiss wrote:
>>>>>
>>>>>> FWIW, I'm planning to discuss
>>>>>> <https://github.com/w3c/webappsec/issues/668#issuecomment-2709995028>
>>>>>> a syntax change at next week's WebAppSec meeting, that can help us avoid
>>>>>> these compat issues.
>>>>>>
>>>>>> On Tue, Feb 25, 2025 at 7:54 PM Yoav Weiss (@Shopify) <
>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Feb 25, 2025 at 6:08 PM Mike Taylor <miketa...@chromium.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On 2/24/25 4:24 PM, Yoav Weiss (@Shopify) wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Feb 24, 2025 at 7:18 PM Mike Taylor <miketa...@chromium.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> On 2/21/25 8:33 AM, Yoav Weiss (@Shopify) wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thursday, February 20, 2025 at 1:56:59 PM UTC+1 Yoav Weiss
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thursday, February 20, 2025 at 11:47:00 AM UTC+1 Yoav Weiss
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Contact emailsyoavwe...@chromium.org
>>>>>>>>>
>>>>>>>>> Explainerhttps://github.com/w3c/webappsec-subresource-inte
>>>>>>>>> grity/pull/129#:~:text=for%20some%20assets.-,require%2Dsr
>>>>>>>>> i%2Dfor%20CSP%20directive,-Subresource%2DIntegrity%20
>>>>>>>>>
>>>>>>>>> Specificationhttps://github.com/w3c/webappsec-subresource-
>>>>>>>>> integrity/pull/129
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> The feature and PR were discussed
>>>>>>>>> <https://github.com/w3c/webappsec/blob/main/meetings/2025/2025-02-19-minutes.md#reviving-require-sri-for>
>>>>>>>>> at the WebAppSec WG call.
>>>>>>>>>
>>>>>>>>> No objection beyond questions on whether we'd need to expand this
>>>>>>>>> to cover stylesheets as well. We'd be able to do that in the future 
>>>>>>>>> (as a
>>>>>>>>> separate intent) if needed.
>>>>>>>>>
>>>>>>>>> Summary
>>>>>>>>>
>>>>>>>>> The `require-sri-for` directive gives developers the ability to
>>>>>>>>> assert that every resource of a given type needs to be integrity 
>>>>>>>>> checked.
>>>>>>>>> If a resource of that type is attempted to be loaded without integrity
>>>>>>>>> metadata, that attempt will fail and trigger a CSP violation report. 
>>>>>>>>> This
>>>>>>>>> intent covers the "script" value of this directive.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Blink componentBlink>SecurityFeature>ContentSecurityPolicy
>>>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESecurityFeature%3EContentSecurityPolicy%22>
>>>>>>>>>
>>>>>>>>> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/1048
>>>>>>>>>
>>>>>>>>> TAG review statusPending - No response just yet
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Risks
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Interoperability and Compatibility
>>>>>>>>>
>>>>>>>>> On the compatibility front:
>>>>>>>>>
>>>>>>>>> This directive was already implemented in the past, and there are
>>>>>>>>> some developer docs
>>>>>>>>> <https://udn.realityripple.com/docs/Web/HTTP/Headers/Content-Security-Policy/require-sri-for>
>>>>>>>>> that still describe it. The current PR and implementation did not 
>>>>>>>>> diverge
>>>>>>>>> from the past implementation.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> If developers deployed the feature in the past and are now relying
>>>>>>>>> on it *not really working*, that may result in surprising
>>>>>>>>> breakage. The HTTPArchive shows *0.0011% of page responses* (178
>>>>>>>>> out of 15760519) have an existing `require-sri-for` directive.
>>>>>>>>> That's an upper bound - only those that enforce scripts, and have no
>>>>>>>>> integrity attributes on some scripts may get broken.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Doing some more HA digging I found that it's 153 sites, which is
>>>>>>>>> not significantly different.
>>>>>>>>> I downloaded their URLs
>>>>>>>>> <https://docs.google.com/spreadsheets/d/1NlFHLytc8lQcdP5FXXDltKEPQVE0e8oyjw9k1S-9KPI/edit?usp=sharing>
>>>>>>>>>  and
>>>>>>>>> started going to these sites with the feature enabled.
>>>>>>>>> Of those 153, 22 had any blocked assets, 9 had broken
>>>>>>>>> functionality or layout and 1 had missing ads.
>>>>>>>>> Non-visiblity broken but blocked sites mostly had their analytics
>>>>>>>>> blocked.
>>>>>>>>>
>>>>>>>>> Extrapolating that data brings us to 0.000158% for any blocked
>>>>>>>>> assets, and 0.000065% for broken functionality.
>>>>>>>>>
>>>>>>>>> I'm planning to reach out to the broken sites and make them aware
>>>>>>>>> of this change. Many of them seem to be coming from a single provider
>>>>>>>>> (similar site and breakage).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I also found ~3500 sites that have the `require-sri-for` string in
>>>>>>>>> their response bodies (and hence may have it applied).
>>>>>>>>> I put together a script that so far scanned ~1800 of them and
>>>>>>>>> found no blocked assets. So, it seems like the risk is very low on 
>>>>>>>>> that
>>>>>>>>> front.
>>>>>>>>>
>>>>>>>>> Thanks, I appreciate you digging in to understand the possible
>>>>>>>>> risks. My understanding of the compat risk goes something like 
>>>>>>>>> (please let
>>>>>>>>> me know if I'm missing something):
>>>>>>>>>
>>>>>>>>> 1. This feature never really shipped, but was implemented behind a
>>>>>>>>> flag.
>>>>>>>>>
>>>>>>>>> 2. Early adopter developers (or menu framework authors?) added
>>>>>>>>> require-sri-for for some scripts that they wanted to lock down
>>>>>>>>>
>>>>>>>> Tiny correction: they added it to the document's CSP, not specific
>>>>>>>> scripts.
>>>>>>>>
>>>>>>>>> (to prevent 3rd-party attackers from modifying them, etc).
>>>>>>>>>
>>>>>>>>> 3. Now, you actually ship the feature.
>>>>>>>>>
>>>>>>>>> That means the risks are:
>>>>>>>>>
>>>>>>>>> a) Some CDN was compromised at some point, and now some sketchy
>>>>>>>>> scripts will fail to load. Seems like that's security positive, even 
>>>>>>>>> if it
>>>>>>>>> surprises users or developers.
>>>>>>>>>
>>>>>>>>> b) Perhaps more likely, a page was redesigned and they updated
>>>>>>>>> their analytics provider but didn't remember to add hashes. Now some 
>>>>>>>>> things
>>>>>>>>> don't work.
>>>>>>>>>
>>>>>>>> I suspect it's
>>>>>>>> c) they added the header but never actually tested with the feature
>>>>>>>> enabled, as it never shipped.
>>>>>>>>
>>>>>>>> It seems like they added the CSP header, but never added an
>>>>>>>> "integrity" attribute to many/most of their scripts.
>>>>>>>>
>>>>>>>>
>>>>>>>>> From your sheet (which is great, thanks), it seems like largest
>>>>>>>>> impact is busted menus. Is this a single library? Or common pattern?
>>>>>>>>>
>>>>>>>>> It seems like a common provider. 6 out of the 9 sites with issues
>>>>>>>> are Canadian health/edu related sites.
>>>>>>>>
>>>>>>>> Breaking health/edu-releated sites is not good...
>>>>>>>>
>>>>>>> Indeed, although I'm not sure how load-bearing they are..
>>>>>>>
>>>>>>>> When broken, is it cosmetic, or are the links in the menu still
>>>>>>>> accessible? (I see you're gathering contact info - let me know if you 
>>>>>>>> need
>>>>>>>> help with that.)
>>>>>>>>
>>>>>>> It seems like the desktop view is functional, but the mobile view's
>>>>>>> hamburger menu is not working (at least in some cases).
>>>>>>>
>>>>>>>> Assuming we can sort out the menu breakage somehow, I think for the
>>>>>>>> rest - the best we can do is roll it out and be ready to killswitch if
>>>>>>>> needed.
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *Gecko*: No signal (https://github.com/mozilla/st
>>>>>>>>> andards-positions/issues/1173)
>>>>>>>>>
>>>>>>>>> *WebKit*: No signal (https://github.com/WebKit/sta
>>>>>>>>> ndards-positions/issues/458)
>>>>>>>>>
>>>>>>>>> *Web developers*: Shopify is interested in this. I suspect PCIv4
>>>>>>>>> <https://docs.google.com/document/d/1RcUpbpWPxXTyW0Qwczs9GCTLPD3-LcbbhL4ooBUevTM/edit?tab=t.0>
>>>>>>>>>  would
>>>>>>>>> make some developers interested in making sure their documents' 
>>>>>>>>> scripts
>>>>>>>>> have complete integrity checks.
>>>>>>>>>
>>>>>>>>> *Other signals*:
>>>>>>>>>
>>>>>>>>> WebView application risks
>>>>>>>>>
>>>>>>>>> Does this intent deprecate or change behavior of existing APIs,
>>>>>>>>> such that it has potentially high risk for Android WebView-based
>>>>>>>>> applications?
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Debuggability
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Will this feature be supported on all six Blink platforms
>>>>>>>>> (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?Yes
>>>>>>>>>
>>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>>>>> ?Yes
>>>>>>>>>
>>>>>>>>> https://wpt.fyi/results/content-security-policy/tentative/
>>>>>>>>> require-sri-for?label=experimental&label=master&aligned
>>>>>>>>> <https://chromium-review.googlesource.com/c/chromium/src/+/5877633>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Flag name on about://flagsNone
>>>>>>>>>
>>>>>>>>> Finch feature nameCSPRequireSRIFor
>>>>>>>>>
>>>>>>>>> Requires code in //chrome?False
>>>>>>>>>
>>>>>>>>> Estimated milestonesShipping on desktop135DevTrial on 
>>>>>>>>> desktop134Shipping
>>>>>>>>> on Android135DevTrial on Android134Shipping on WebView135
>>>>>>>>>
>>>>>>>>> Anticipated spec changes
>>>>>>>>>
>>>>>>>>> Open questions about a feature may be a source of future web
>>>>>>>>> compat or interop issues. Please list open issues (e.g. links to known
>>>>>>>>> github issues in the project for the feature specification) whose
>>>>>>>>> resolution may introduce web compat/interop risk (e.g., changing to 
>>>>>>>>> naming
>>>>>>>>> or structure of the API in a non-backward-compatible way).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> None
>>>>>>>>>
>>>>>>>>> Link to entry on the Chrome Platform Statushttps://chromestatus.
>>>>>>>>> com/feature/5090023365672960?gate=5186570942152704
>>>>>>>>>
>>>>>>>>> Links to previous Intent discussionsIntent to Prototype:
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/
>>>>>>>>> CAOmohSJUygAmobR9dRkDr%3DBWQ1h5hv2Lj3WUFN31QZF360A47A
>>>>>>>>> %40mail.gmail.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> This intent message was generated by Chrome Platform Status
>>>>>>>>> <https://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 visit
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8d3107ca-61cc-47f6-badd-8bc6a1f30145n%40chromium.org
>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8d3107ca-61cc-47f6-badd-8bc6a1f30145n%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 visit
>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/49037f78-2795-4d2e-9645-361e632c61f7n%40chromium.org
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/49037f78-2795-4d2e-9645-361e632c61f7n%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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0b112bbd-5132-4d64-a85f-78afb6ba3005%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0b112bbd-5132-4d64-a85f-78afb6ba3005%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJq3AEVDmW%2BnOzZm12%2BoOYq0ap%2B0vV_s0k6znXA8sk8sg%40mail.gmail.com.

Reply via email to