Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/apps/api/ViGet/TazelPluginCatalog.cs
diff options
context:
space:
mode:
authorLeitwolf112026-11-06 08:05:21 +0300
committerLeitwolf112026-11-06 08:05:21 +0300
commitc4fb3effa7f806c570771bb83c0ed6988006bc24 (patch)
tree6e5e9b36161934b3e646ea21ccc00407cf29ba0f /apps/api/ViGet/TazelPluginCatalog.cs
parent35e09214817585007308bdbc26d877791843ab29 (diff)
downloadprogmaweb-security/content-security-policy.tar.gz
Give every page a Content-Security-Policy with its own noncesecurity/content-security-policy
The pages of progmasoft.com and its hosts had no content security policy. The proxy now creates a 128-bit nonce for every request and sends the policy both ways: on the request, so that Next marks its own inline scripts with the nonce, and on the response. The layout reads the nonce for the theme bootstrap. Every page is rendered on demand already, so none is served with a stale nonce. Scripts may come from the host, carry the nonce, or be Cloudflare's Web Analytics beacon from static.cloudflareinsights.com, which reports to cloudflareinsights.com. 'strict-dynamic' is left out, because browsers ignore host sources under it and the beacon is added by Cloudflare without a nonce. Styles allow inline ones; objects, framing and other base URLs are refused. There is no form-action: sign-in and OAuth consent end in redirects to other hosts, loopback addresses included, and browsers apply form-action to them. The development server also gets 'unsafe-eval' for its hot reload. Tests check the nonce and each directive; ARCHITECTURE.md describes the policy.
Diffstat (limited to 'apps/api/ViGet/TazelPluginCatalog.cs')
0 files changed, 0 insertions, 0 deletions