← ShipLatch · Full sample (Fix Pack view) · What we check
| Critical | Someone can likely take your data or take control right now. |
| High | Someone could use this against your app today. |
| Medium | Weakens your defenses, but needs a second mistake to exploit. |
| Low | Good hygiene. Little direct risk on its own. |
No leaked keys and no exposed files: just two missing security headers and a public source map. The free scan gives you the source-map fix and the copy-paste header fix below.
{/*
/*
Add these HTTP security headers to every response my app serves (all routes, including the HTML page). Use my hosting's config file (vercel.json headers, a public/_headers file for Netlify or Cloudflare Pages, or netlify.toml). Don't change any app code.
{/*
/*
Add these HTTP security headers to every response my app serves (all routes, including the HTML page). Use my hosting's config file (vercel.json headers, a public/_headers file for Netlify or Cloudflare Pages, or netlify.toml). Don't change any app code.
{
"headers": [
{
"source": "/(.*)",
"headers": [
{
"key": "Content-Security-Policy",
"value": "frame-ancestors 'self'; object-src 'none'; base-uri 'self'; upgrade-insecure-requests"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains"
},
{
"key": "X-Frame-Options",
"value": "SAMEORIGIN"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "Referrer-Policy",
"value": "strict-origin-when-cross-origin"
}
]
}
]
}/*
Content-Security-Policy: frame-ancestors 'self'; object-src 'none'; base-uri 'self'; upgrade-insecure-requests
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
# or in netlify.toml:
[[headers]]
for = "/*"
[headers.values]
Content-Security-Policy = "frame-ancestors 'self'; object-src 'none'; base-uri 'self'; upgrade-insecure-requests"
Strict-Transport-Security = "max-age=31536000; includeSubDomains"
X-Frame-Options = "SAMEORIGIN"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"/* Content-Security-Policy: frame-ancestors 'self'; object-src 'none'; base-uri 'self'; upgrade-insecure-requests Strict-Transport-Security: max-age=31536000; includeSubDomains X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin
Add these HTTP security headers to every response my app serves (all routes, including the HTML page). Use my hosting's config file (vercel.json headers, a public/_headers file for Netlify or Cloudflare Pages, or netlify.toml). Don't change any app code. Content-Security-Policy: frame-ancestors 'self'; object-src 'none'; base-uri 'self'; upgrade-insecure-requests Strict-Transport-Security: max-age=31536000; includeSubDomains X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin
TypicalTodo is a fictional app run by ShipLatch for this sample. Viewing this page never unlocks or buys anything.