default-src (Fallback Fetch Boundary)source list (W3C fetch fallback)
Serves as the universal fallback directive for all fetch directives (script-src, style-src, img-src, connect-src, font-src, object-src, media-src, frame-src, worker-src, manifest-src). Setting 'self' restricts unassigned categories to the current origin, while setting 'none' enforces absolute explicit declarations across all resource types.
Default: 'self' (Origin-Only Fallback)
script-src & 'strict-dynamic' (XSS Execution Shield)source list & keyword expressions
Governs JavaScript execution origins, preventing cross-site scripting (XSS). In W3C CSP Level 3, combining a cryptographic nonce or hash with 'strict-dynamic' instructs modern browsers to trust scripts created dynamically by authorized root scripts, while ignoring legacy host allowlists and 'unsafe-inline'.
Default: 'self' 'strict-dynamic' 'nonce-...' (Modern Strict)
object-src & base-uri (Plugin & Navigation Defense)source list (document integrity)
object-src restricts plugins like Flash, Java, and Silverlight; setting 'none' is an OWASP mandatory baseline. base-uri restricts URLs allowed in HTML <base href> tags; critically, base-uri does NOT fall back to default-src, meaning omitting it leaves the site vulnerable to base-tag injection which hijacks relative script URLs.
Default: object-src 'none'; base-uri 'none'
frame-ancestors (Clickjacking & UI Redressing Armor)framing policy (HTTP response header only)
Specifies valid parents that may embed the page in <frame>, <iframe>, <embed>, or <applet> tags, superseding the legacy X-Frame-Options header. Setting 'none' prevents any site from framing the page (preventing clickjacking), while 'self' allows framing only by the same origin. Note: frame-ancestors is ignored inside HTML <meta> tags.
Default: 'none' or 'self' (Clickjacking Armor)
connect-src (Data Exfiltration & API Boundary)URL origin list (fetch / XHR / WebSocket)
Restricts the target URLs that can be loaded using script interfaces including fetch(), XMLHttpRequest, WebSocket (wss://), EventSource, and navigator.sendBeacon(). Crucial for mitigating data exfiltration by compromised third-party scripts attempting to send session tokens to unauthorized external servers.
Default: 'self' (Current Origin API Only)
upgrade-insecure-requests & report-to (Transport & Telemetry)directive flag & reporting group
upgrade-insecure-requests instructs browsers to treat all HTTP URLs as HTTPS before fetching them, preventing mixed-content warnings. report-to defines the Reporting API endpoint group to which browsers dispatch structured JSON violation reports, modernizing and eventually replacing the deprecated report-uri directive.
Default: upgrade-insecure-requests (Enabled)