webzod
account

Send the Content-Security-Policy as an HTTP header on Cloudflare

headers.csp.meta_only · effort: about an hour

Why it matters

A policy in a meta tag cannot use frame-ancestors, reporting or sandbox, and it only protects what comes after the tag in the page. The same policy sent as a response header covers the whole document.

Staged change. Do this in stages and check each one before the next, so a mistake does not break your site or your mail.

The fix

  1. Stage 1: create a Response Header Transform Rule (Rules, Overview, Create rule) with Set static, header Content-Security-Policy-Report-Only and the meta tag's content value, optionally followed by ; frame-ancestors 'self'. The DNS record must be Proxied.
  2. Stage 2: once nothing legitimate is reported, rename the header to Content-Security-Policy and remove the meta tag from the site's template.

Read the documentation (opens in a new tab)

Scan your domain to see whether this applies to you.