CSP for Apple Pay on the Web: What to Allow and Why

Apple Pay on the web is one of those integrations that looks simple in the demo and gets messy the moment you put a real CSP in front of it. If your checkout already runs a strict policy, Apple Pay usually breaks in one of three places: the Apple Pay JavaScript bootstrap the merchant validation request flow embedded payment UI or gateway-owned frames The hard part is that “Apple Pay support” does not mean one fixed CSP. Your policy depends on how you integrate it: ...

April 24, 2026 · 7 min · headertest.com

CSP for Jotform: Copy-Paste Policy Examples

Jotform is one of those services that looks simple from the outside: paste an embed, publish the page, done. Then CSP blocks it. Usually the first breakage shows up as: the form iframe never loads custom scripts from Jotform get refused form submissions fail silently file uploads or payment widgets break the browser console fills with Refused to frame, Refused to connect, or Refused to load script If you’re embedding Jotform on a site with a real Content Security Policy, you need to explicitly allow the Jotform origins your embed uses. There isn’t a single universal one-liner that covers every Jotform feature, because the exact domains can vary by embed type, region, and enabled integrations. ...

April 23, 2026 · 5 min · headertest.com

CSP for Meilisearch

If you add Meilisearch to a frontend and forget CSP, search is often the first thing to break. Not because Meilisearch is weird, but because CSP is doing exactly what you asked: block outbound requests, workers, inline scripts, and third-party assets unless you explicitly allow them. I’ve seen this happen a lot with search UIs. Everything works locally, then production starts throwing errors like: Refused to connect to 'https://search.example.com/indexes/movies/search' because it violates the following Content Security Policy directive: "connect-src 'self'". That’s the core of CSP for Meilisearch: connect-src. Most Meilisearch integrations are browser code making fetch or XHR requests to your Meilisearch host. If that host is not allowed, search dies. ...

April 22, 2026 · 6 min · headertest.com

CSP for A/B Testing With VWO: Pros, Cons, and Tradeoffs

A/B testing tools and strict CSP have a messy relationship. VWO is a good example. Marketing wants fast experiments. Security wants a locked-down policy. Engineering gets stuck in the middle, usually after someone ships unsafe-inline and calls it “temporary.” I’ve had to clean this up more than once. If you’re running VWO on a site with a real Content Security Policy, you need to make a choice: loosen CSP enough for VWO to work easily, or keep a stricter policy and accept extra setup, testing, and occasional friction. ...

April 21, 2026 · 7 min · headertest.com

CSP for Supabase Auth Without Breaking Login

Supabase Auth is one of those tools that feels simple right up until you add a strict Content Security Policy. Then login starts failing in weird ways: OAuth popups stop working, token refresh breaks, realtime disconnects, and you end up loosening your policy until it barely counts as CSP. I’ve done that mistake before. The fix is not to throw https: everywhere and hope for the best. The fix is to understand exactly what Supabase Auth needs, then allow only that. ...

April 20, 2026 · 7 min · headertest.com

CSP for Intercom Live Chat: A Before and After Case Study

I’ve seen this exact problem a bunch of times: a team has a pretty decent Content Security Policy, marketing wants Intercom, someone pastes the vendor snippet into the site, and suddenly the browser console looks like a crime scene. The hard part isn’t getting Intercom to load. The hard part is getting it to load without wrecking a policy that was actually doing useful work. Here’s a realistic case study using a real baseline CSP from headertest.com, then tightening it up for Intercom live chat with minimal blast radius. ...

April 18, 2026 · 6 min · headertest.com

CSP Mistakes with JSFiddle Embeds and How to Fix Them

JSFiddle embeds look harmless until your CSP blocks them and your page turns into an empty rectangle. I’ve seen this happen a lot: someone adds a fiddle iframe to docs, tutorials, or a demo page, then ships a tight CSP and suddenly the embed refuses to load. The browser console says something vague about frame-src, maybe script-src, and now everyone is guessing. JSFiddle embeds are a good example of how CSP failures usually come from one or two small misunderstandings, not from some giant policy disaster. Here are the mistakes I see most often, and the fixes that actually work. ...

April 17, 2026 · 6 min · headertest.com

CSP for A/B Testing with PostHog Experiments

A/B testing sounds harmless until it collides with a strict Content Security Policy. That’s where teams usually get stuck with PostHog experiments. Product wants fast iteration. Security wants a locked-down CSP. Engineering gets to mediate the fight. I’ve dealt with this a few times, and the bad news is there’s no magic CSP switch for “safe experimentation.” The good news is you do have a few workable patterns, and each one has pretty clear tradeoffs. ...

April 16, 2026 · 6 min · headertest.com

CSP for Split.io Feature Flags

Split.io is easy to miss in a CSP until your flags stop loading and your app quietly falls back to defaults. I’ve seen this happen a lot: the SDK loads fine from your own bundle, but CSP blocks the network calls Split needs for streaming, polling, or event tracking. The result is subtle. No obvious crash, just “why are all my feature flags off in production?” This guide is the copy-paste version for getting Split.io working with Content Security Policy. ...

April 14, 2026 · 6 min · headertest.com

CSP for Nginx Reverse Proxy: A Real Before/After Fix

I’ve seen a bunch of teams do the same thing with Content Security Policy on Nginx: they add one header at the reverse proxy, ship it, and assume the app is now “protected.” Then analytics breaks, consent banners disappear, WebSocket calls fail, and somebody quietly removes the header on Friday evening. That usually happens because CSP at the reverse proxy layer is not just “set a header.” It’s policy design, inheritance, proxy behavior, and app rendering all tangled together. ...

April 12, 2026 · 7 min · headertest.com