summaryrefslogtreecommitdiff
path: root/common/git
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-08-03 12:55:47 -0500
committerChristian Cleberg <[email protected]>2026-08-03 12:55:47 -0500
commit7628832bfe9aaf3deafc2787e596e0ca65b0cad0 (patch)
treee8962ea842b32dd8bf11804dbdc2a51c5bd330f6 /common/git
parent263f281b30ac0f7daaf654e2e9abee71f9d80709 (diff)
downloaddotfiles-7628832bfe9aaf3deafc2787e596e0ca65b0cad0.tar.gz
dotfiles-7628832bfe9aaf3deafc2787e596e0ca65b0cad0.tar.bz2
dotfiles-7628832bfe9aaf3deafc2787e596e0ca65b0cad0.zip
nginx: enforce piped CSP, drop dead freshrss CSP and rss vhost
Promote piped.krz.sh from Content-Security-Policy-Report-Only to enforcing. Validated in a real browser first: homepage, VOD playback and seek on two videos, channel page and a 39-result search were all clean, and every host contacted was already allowed (self, pipedapi, pipedproxy, blob:). No fallback to pipedproxy.kavin.rocks, so viewer IPs stay on the self-hosted proxy. The check was proven meaningful before being trusted by injecting a disallowed image and confirming a securitypolicyviolation with disposition "report". Remove the FreshRSS CSP (include file plus the $csp_freshrss map). The header never reached a browser: rss.krz.sh is routed tunnel-direct to the container on :8099 and never transits nginx. Promoting it would also have regressed behaviour rather than hardened it, since browsers enforce the intersection of stacked policies and this one was stricter than FreshRSS's own exactly where feed content lives (no blob: in img-src, no * in media-src/frame-src). FreshRSS keeps its own, correctly RSS-aware, policy. Delete conf.d/rss.conf entirely. It was unreachable: no onion targets :10045, no other vhost uses the port, and rss.zerolabs.sh is redirected to rss.krz.sh at the Cloudflare edge before the origin is reached.
Diffstat (limited to 'common/git')
0 files changed, 0 insertions, 0 deletions