Ping. We would like to start landing code behind a feature flag, thanks.

On Fri, Apr 4, 2025 at 12:41 PM Mustafa Emre Acer <mea...@chromium.org>
wrote:

> Contact emailsmea...@chromium.org
>
> Explainerhttps://github.com/explainers-by-googlers/script-src-v2
>
> SpecificationNone
> Existing CSP spec will be updated as part of development.
>
> Summary
>
> Introduces a new Content Security Policy (CSP) directive tentatively
> called *script-src-v2*. This new directive adds two new hash based
> allowlisting mechanisms: script sources based on hashes of URLs and
> contents of eval() and eval() like functions. Extending hashes to cover URL
> and eval() hashes allows developers to set reasonably strict security
> policies by narrowly allowlisting scripts by their hashes even when script
> contents are subject to frequent changes, and known-safe contents of eval()
> without permitting unchecked use of eval() broadly. script-src-v2 drops
> some features considered unsafe from script-src. In particular, hostname
> based allowlisting functionality that is unsafe and no longer necessary
> given the expanded allowlisting functionality is removed. The new directive
> overrides script-src when provided.
>
>
> Blink componentBlink>SecurityFeature>ContentSecurityPolicy
> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESecurityFeature%3EContentSecurityPolicy%22>
>
> Motivation
>
> Allowlist script-src URLs with their hashes with a new keyword called
> url-hashes: Sites that want to allowlist scripts for use with script-src
> currently have 2 options: allowlist script contents through subresource
> integrity, which is not practical for scripts that change often (e.g.
> analytics), or use host-source to allowlist entire hostnames (thus
> allowlisting more than may be necessary). This proposal permits
> allowlisting full URLs, which permits precise allowlist targeting while
> still allowing content to change as needed. Using hashes over raw URLs in
> the policy allows for a more succinct representation when allowlisting
> longer URLs. More safely enabling scripts for use with eval(), Function,
> setTimeout, setInterval, and setImmediate: The only existing mechanism to
> use eval() and eval-like functions is by enabling them without restriction
> via unsafe-eval. This means that currently any site that needs to use
> eval() (such as for feature detection) must expose itself to eval-based XSS
> risks. Allowlisting individual scripts mitigates these issues. Introducing
> the script-src-v2 directive: Relying on the functionality above without
> incurring breakage on browsers that do not yet support the updated
> semantics necessitates a new directive that overrides the previous
> directive, allowing older browsers to fall back on a less-safe
> script-src-based policy.
>
>
> Initial public proposalhttps://github.com/WICG/proposals/issues/203
>
> Search tagscontent security policy
> <https://chromestatus.com/features#tags:content%20security%20policy>, csp
> <https://chromestatus.com/features#tags:csp>
>
> TAG reviewNone
>
> TAG review statusPending
>
> Risks
>
>
> Interoperability and Compatibility
>
> The new script-src-v2 directive (final name TBD) is intended to override
> script-src. This will allow sites to enforce a stricter policy in browsers
> that understand the new directive while still including a weaker policy for
> those that only support script-src. The new url-hashes keyword and support
> for hashes of eval'ed functions are only supported in script-src-v2. We
> decided not to backport these changes to script-src to avoid potential
> breakage: Sites deploying these features without checking browser support
> may cause the user's browser to block loading of scripts allowlisted by
> url-hashes and eval hashes.
>
>
> *Gecko*: No signal
>
> *WebKit*: No signal
>
> *Web developers*: No signals
>
> *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
>
>
>
> Is this feature fully tested by web-platform-tests
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> ?No
>
> Web Platform Tests will be written as part of the prototype.
>
>
> Flag name on about://flagsNone
>
> Finch feature nameCSPScriptSrcV2
>
> Requires code in //chrome?False
>
> Tracking bughttps://crbug.com/392657736
>
> Estimated milestones
>
> No milestones specified
>
>
> Link to entry on the Chrome Platform Status
> https://chromestatus.com/feature/5196368819519488?gate=5111339338694656
>
> 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/CANDkT5nUKdicqiy0h6S7JcmDinfZpKF3pEfOKi2iSsz-_9sKxw%40mail.gmail.com.

Reply via email to