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.

Reply via email to