Skip to content
FixSecurityHeadersScan a site

How to add Cross-Origin-Opener-Policy on Lovable / static hosting

Last updated · Reviewed by a CISSP-certified security practitioner

To add Cross-Origin-Opener-Policy on Lovable / static hosting, set the header in src/server.ts (TanStack Start) or your edge proxy with the value same-origin. Isolates your window from pop-ups and openers on other sites. Publish, then curl -I your live domain. Then confirm it with curl -I or a free FixSecurityHeaders scan.

What does Cross-Origin-Opener-Policy do?

COOP puts your page in its own browsing context group so cross-origin windows can't get a handle to it.

Risk if missing: Cross-window attacks (XS-Leaks, tabnabbing) and Spectre-style side channels.

What is the Lovable / static hosting configuration?

Add this to src/server.ts (TanStack Start) or your edge proxy:

src/server.ts (TanStack Start) or your edge proxy
// src/server.ts — wrap the response before returning it
function withSecurityHeaders(res: Response): Response {
  const out = new Response(res.body, res);
  const h = out.headers;
  h.set("Cross-Origin-Opener-Policy", "same-origin");
  return out;
}

How do I add it step by step?

  1. Open src/server.ts (TanStack Start) or your edge proxy.
  2. Paste the Cross-Origin-Opener-Policy configuration shown below.
  3. Publish, then curl -I your live domain.
  4. Run curl -I https://yourdomain.com and look for the cross-origin-opener-policy line.
  5. Scan your site on FixSecurityHeaders to confirm the grade improved.

How do I verify it worked?

terminal
curl -sI https://yourdomain.com | grep -i "cross-origin-opener-policy"
# expected:
# cross-origin-opener-policy: same-origin

Check your site now

Free scan, instant grade, exact fixes for your stack.

What are the common mistakes?

  • OAuth or payment pop-ups that talk back via window.opener may need same-origin-allow-popups.
  • Pure static hosts that don't allow custom headers can be fronted by Cloudflare to add them.
  • Skip frame-blocking headers on preview URLs that are shown inside editors.

Quick reference

HeaderCross-Origin-Opener-Policy
Recommended valuesame-origin
StackLovable / static hosting
Wheresrc/server.ts (TanStack Start) or your edge proxy
ComplianceOWASP ASVS V14.4

FAQ

What value should I use for Cross-Origin-Opener-Policy?

A safe default is same-origin. OAuth or payment pop-ups that talk back via window.opener may need same-origin-allow-popups.

Why isn't Cross-Origin-Opener-Policy showing up on Lovable / static hosting?

Pure static hosts that don't allow custom headers can be fronted by Cloudflare to add them. Also clear any CDN or page cache, and check you edited the config that actually serves your domain.

Does Cross-Origin-Opener-Policy affect SEO or performance?

No measurable performance cost — it's a few bytes per response. It doesn't affect rankings directly, but a misconfigured policy can break page resources, so test before enforcing.

Which compliance frameworks reference Cross-Origin-Opener-Policy?

OWASP ASVS V14.4.

Related guides