fix(sri): resolve hashes using cdnURL at runtime instead of build-time #615
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Types of changes
Description
This PR fixes a bug in Subresource Integrity (SRI) generation when using dynamic CDN URLs.
Currently,
nuxt-security
uses thecdnURL
value at build time to construct the keys for the#sri-hashes
map. If the same build is deployed to different environments with different CDN base URLs, the computedsrc
/href
at runtime does not match any entry in the#sri-hashes
, andintegrity
is not applied.This change defers the use of
cdnURL
to runtime, stripping it from the resource URL before matching it against the#sri-hashes
map. This makes SRI compatible with multi-environment deployments using different CDN base URLs set via runtime config (NUXT_APP_CDN_URL
).Before:
#sri-hashes
keys were generated usingcdnURL
at build timecdnURL
changedAfter:
#sri-hashes
keys are built withoutcdnURL
cdnURL
before lookupThis allows a single build to work reliably across multiple environments with different CDN domains.
Checklist: