Skip to content

Standard

Content Security Policy

A W3C browser standard that lets sites specify, via HTTP header or meta tag, which script, style, and resource sources a page may load, to curb XSS.

Known aliases

  • connect-src
  • connect-src 'self'
  • Content-Security-Policy
  • Content-Security-Policy-Report-Only
  • CSP
  • frame-ancestors
  • script-src
  • strict-dynamic

Current stories

buildOne report1 publisher

An <object> tag turns an uploaded SVG into stored XSS for every visitor

OopsSec Store, a deliberately vulnerable Next.js app, lets an admin-uploaded SVG run JavaScript in every visitor's browser. It works because the server trusts the client-set Content-Type and the product page renders SVGs through an <object> tag.

Publishers:dev.to

Reality

Evidence62
Adoption
Not scored
Hype gap+8
Incentives40
Confidence72
securityOne report1 publisher

A stranger holds wildcard DNS over a wound-down CDN's domain that thousands of pages still call

The domain expired after the CDN was wound down, someone re-registered it in July 2025, and nobody told the pages calling those hostnames. Every hostname beneath it now resolves to that owner's infrastructure.

Reality

Evidence30
Adoption
Not scored
Hype gap+35
Incentives85
Confidence40
securityConfirmed3 publishers

Attackers rewrote Brevo's embedded scripts at Cloudflare's edge with a hardcoded full-permission key

Brevo says a long-lived Cloudflare key with full account permissions sat in its application source code, and the Worker built with it stripped Content-Security-Policy headers from scripts that Sansec estimates reach 100,000 sites.

Perspective Coverage

3 publishers
Builder
Builder 34%
Operator
Operator 48%
Investor
Investor 18%

Reality

Evidence78
Adoption60
Hype gap+20
Incentives58
Confidence72
buildOne report1 publisher

A Raxis pentester walked attacker JavaScript past a nonce-based CSP through googletagmanager.com

The strict-dynamic directive passes a script's trust to everything that script loads, and Ryan Chaplin of Raxis used that rule to get an XSS payload executing under a nonce-based policy that had blocked it.

Publishers:dev.to

Reality

Evidence55
Adoption30
Hype gap+22
Incentives62
Confidence50
buildOne report1 publisher

A skimmer in Magento's Miscellaneous HTML field survives a redeploy from clean git

The injected JavaScript only adds an event handler, so HTTP checks, response times and exception logs all stay clean, and the most common hiding place is a database row that no rebuild from git replaces.

Publishers:dev.to

Reality

Evidence42
Adoption
Not scored
Hype gap+14
Incentives34
Confidence46
buildOne report1 publisher

One add_header in an nginx location block discards the other four set above it

A dev.to comparison of hand-written nginx directives against delegated edge policy comes down to the inheritance and duplication rules that make a passing config file a poor description of what a client actually receives.

Publishers:dev.to

Reality

Evidence58
Adoption
Not scored
Hype gap−5
Incentives20
Confidence50
buildOne report1 publisher

An edge rule of 3 requests per 10 seconds still admits 1,080 login attempts an hour

SyllogOS layers a Cloudflare Free rate limit, Turnstile and an in-app limiter in front of one login form. The author's own published thresholds show which of the three actually caps a patient attacker.

Publishers:dev.to

Reality

Evidence62
Adoption15
Hype gap−12
Incentives35
Confidence58
buildOne report1 publisher

A CSP directive turns every string passed to innerHTML into a TypeError

MDN now lists the Trusted Types API as Baseline 2026, newly available. The JavaScript half only lets you sanitize; require-trusted-types-for is the part that makes an unsanitized assignment throw, and the sanitizer stays yours to write.

Publishers:developer.mozilla.org

Reality

Evidence70
Adoption
Not scored
Hype gap+8
Incentives22
Confidence63
buildOne report1 publisher

A loader on 5,400 hacked sites borrows the page's own CSP nonce to execute

Compromised WordPress and PrestaShop pages fetch their next stage with a JSON-RPC eth_call to BNB Smart Chain Testnet, so the artefact sitting on the site is a request, not a file you can quarantine.

Publishers:dev.to

Reality

Evidence40
Adoption45
Hype gap+8
Incentives55
Confidence45
buildOne report1 publisher

Appending SAMEORIGIN beside the app's DENY nullified X-Frame-Options, though CSP still blocked framing

A security-header baseline meant as a fallback for apps that set none of their own went out to every generated vhost. Because nginx appends rather than sets, and browsers refuse to merge a contradictory pair, it removed protection instead.

Publishers:dev.to

Reality

Evidence56
Adoption16
Hype gap+8
Incentives22
Confidence54
buildOne report1 publisher

Vellum redacts PDFs by rasterizing pages, trading away selectable text

The PDF tools run pdf.js, pdf-lib, qpdf and Tesseract as lazily loaded WASM inside the tab, and one CSP directive turns the privacy claim into something you can check in the Network panel instead of read in a policy.

Publishers:dev.to

Reality

Evidence42
Adoption
Not scored
Hype gap+18
Incentives78
Confidence44
buildOne report1 publisher

PingFederate logout breaks silently because the app never ends the PingFederate session

A working PingFederate 12.3.3 build keeps the browser, the IdP session and the application session apart, and reads the remembered-account cookie through a status-only adapter that never joins the login policy.

Publishers:dev.to

Reality

Evidence48
Adoption
Not scored
Hype gap+18
Incentives30
Confidence50
buildOne report1 publisher

Chrome's auto-update default distributed the drainer once the extension changed hands

Socket says the sharpest move in this campaign was buying utilities that already had users, then shipping the payload as version two. Install-time review had already run and passed, and the 80,000-user surface came with the purchase.

Publishers:socket.dev

Reality

Evidence62
Adoption54
Hype gap+14
Incentives71
Confidence58
buildOne report1 publisher

A strict CSP killed one form in production, and every monitor stayed green

A per-request nonce met a statically prerendered page, and the browser refused every script it was sent. Six health signals, including a 3,500-test suite, reported fine.

Publishers:dev.to

Reality

Evidence60
Adoption20
Hype gap+8
Incentives30
Confidence55
buildOne report1 publisher

A Green Link Report Says Nothing About Whether Your HTTPS Page Renders

Mixed content is the failure most likely to break a secure page, and it answers 200, so status-code checkers pass it. A Merlonix post argues the fix is protocol inspection, not more fetching.

Publishers:dev.to

Reality

Evidence45
Adoption
Not scored
Hype gap+25
Incentives85
Confidence52
buildOne report1 publisher

GitHub Pages cannot send a single security header, so every Pages site starts at zero

A reader's scan found six response headers missing on a Pages-hosted site. The fix was a Cloudflare transform rule in front of the custom domain, with no change to the deploy workflow.

Publishers:dev.to

Reality

Evidence34
Adoption22
Hype gap+18
Incentives72
Confidence38
buildOne report1 publisher

One link, your session: F-RevoCRM XSS has no fix but 8.0.4

CVE-2026-71368 affects F-RevoCRM 7.3.0 through 8.0.3 and runs attacker script inside the CRM's own origin. JVN rates it Medium; the published remedy is a version bump.

Publishers:dev.to

Reality

Evidence52
Adoption
Not scored
Hype gap+8
Incentives28
Confidence55
buildOne report1 publisher

A parser you can read beats one you trust: hand-rolling .xlsx to keep a CSP promise

A bank-statement converter enforcing connect-src 'none' skipped SheetJS and implemented the four files it needed. Then a green 26-test suite missed a CSP failure only the real page could show.

Publishers:dev.to

Reality

Evidence46
Adoption14
Hype gap−8
Incentives62
Confidence54
buildOne report1 publisher

Wrapping a web tool in VS Code: four sandbox rules, and two gaps in the published fix

A dev.to walkthrough ports a browser tool into a VS Code webview without touching the frontend. The constraints are real; the sample rewriter covers less than the constraint list does.

Publishers:dev.to

Reality

Evidence36
Adoption12
Hype gap+24
Incentives76
Confidence44