Improve default CSP headers #2575
Merged
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.
What does this implement/fix?
This PR picks up where #2542 left. I imported the branch and checked everything is still working as expected. As usual, a second pair of eyes won't harm.
Most importantly:Modern CSP best practices recommend minimizing the use of
unsafe-inlineand only allowing it where strictly necessary (e.g., for styles). Accordingly,unsafe-inlineis now only allowed for styles (because Chart.js needs it), no longer for scripts. This reduces the risk of cross-site scripting (XSS) attacks. As we have seen in the past, inline scripts are a common attack vector.Other CSP parts:
style-src 'self' 'unsafe-inline': allows styles both from files and inline in the code/on the HTML pages.img-src 'self' data:allows images from the same origin and embedded images via data URIs, but blocks external image sources, reducing exposure to malicious content. This is merely a precaution while we are adding more granular control, I don't think we have any external content right now.A few other things, such as removing
minimum-scale=1,user-scalable=yesis done as these two are their respective defaults, anyway.Related issue or feature (if applicable): N/A
Pull request in docs with documentation (if applicable): N/A
By submitting this pull request, I confirm the following:
git rebase)Checklist:
developmentbranch.