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.