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 <mailto: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-integrity/pull/129#:~:text=for%20some%20assets.-,require%2Dsri%2Dfor%20CSP%20directive,-Subresource%2DIntegrity%20
                                    
<https://github.com/w3c/webappsec-subresource-integrity/pull/129#:~:text=for%20some%20assets.-,require%2Dsri%2Dfor%20CSP%20directive,-Subresource%2DIntegrity%20>

                                    
Specificationhttps://github.com/w3c/webappsec-subresource-integrity/pull/129
                                    
<https://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
                                    
<https://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/standards-positions/issues/1173
                                    
<https://github.com/mozilla/standards-positions/issues/1173>)

                                    /WebKit/: No signal
                                    
(https://github.com/WebKit/standards-positions/issues/458
                                    
<https://github.com/WebKit/standards-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
                                    
<https://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
                                    
<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.

Reply via email to