Skip to contentLockpick
How it worksPricingDocs

Read

  • BlogPlain answers to common security questions
  • GuidesStep by step fixes for common setups
  • Security checksEvery check we run, explained

Learn

  • Learn with PickTwo-minute lessons on how sites get attacked
  • Lockpick for ClaudeCheck sites from Claude and other assistants
  • GlossaryThe words we use, in plain words

Company

  • ChangelogWhat changed, newest first
  • StatusWhether scans are running right now
  • Security and trustHow we check and what we never do
Sign inCheck it
Checks

Do your API responses send the right protective headers?

By Mark KashefPublished October 8, 2026

This check reads JSON responses from your API for three protective settings. Type sniffing should be off, personal answers should not be cacheable, and any website should not be allowed to read them.

What does this check look at?

It looks at whether JSON responses from your API send the headers that stop type guessing, keep personal answers out of shared caches and limit which websites can read them. MDN explains that the no-store directive tells every cache, private or shared, not to store the response.

Only a Deep scan runs it, after you prove you own the site.

See whether your site has this. A Deep scan walks the whole site, the scripts it loads and your API surface.

Run a Deep scan

What does a result mean?

What the report showsWhat it meansWhat to do
Medium findingAny website may read the response.Restrict Access-Control-Allow-Origin to trusted origins.
Low findingnosniff is missing, or a personal-looking answer has no cache rule.Add the missing headers to API routes.

A missing header is a gap in defence, not a data leak anyone has shown. A clean result means nothing was found in what the scan read. It does not prove the problem is absent from parts the scan never sees.

How serious is a finding?

Treat this as a hardening gap. It makes an attacker’s job easier but gives them no path of its own, so fix it after anything more direct. Confidence starts low, because it is inferred from headers or declarations rather than shown directly. The report lists what to fix by how directly someone could use it, not by the severity label.

What does a confirmed finding have to show?

PartFor this check
Where it startsOther websites and shared caches
The protection that should stop itnosniff, a cache directive or a CORS restriction is missing on a JSON response
What is reachedHow browsers and caches handle the response
What followsA hardening gap; no data access was shown

Fix it with your AI

Set these once in API middleware so every route gets them.

Fix prompt for any coding agent
Add protective headers to every JSON response from my API, in shared middleware rather than per route. Send X-Content-Type-Options: nosniff on all of them, Cache-Control: no-store on any response that contains user or account data, and replace Access-Control-Allow-Origin: * with an allowlist of my own front-end origins unless the API is meant to be public. Show me the middleware change.

How to check

Say Atlas, our example app at atlas.example, returns account details from an API route with no cache header and a wildcard origin. A Deep scan flags both on that one response.

Deep scans come with the Deep plan, and pricing shows what it includes. Pulse or Deep explains what each scan reads, and the full list of checks shows the rest.

Questions people ask

Is a wildcard origin dangerous on a public API?

Not for data meant to be public. It matters on responses that return personal data, because any website could read them in a visitor’s browser.

Did the scan read personal data?

No. It read the response once without credentials and kept no values.

Run this check on your site

Only a Deep scan runs this check, once you prove you own the site. Deep walks your whole site, the scripts it loads and your API surface.

Run a Deep scan

Related pages

  • Does your site let other websites read responses with your visitors’ cookies?
  • Does your site stop browsers from guessing file types?
  • Could a shared cache hand one visitor another visitor’s session?

Sources

  1. Cache-Control header MDN Web Docs, read on October 7, 2026
  2. How we rate findings Lockpick docs, read on October 7, 2026

About the author

Mark Kashef, Founder of Lockpick

I'm Mark, and I build Lockpick. I write these pages, and each one is checked against its sources before it goes live. The Updated date changes only when the page itself does.

Lockpick
PricingMethodologyDocsBlogGuidesSecurity checksLearn with PickSecurity and trustLockpick for ClaudeChangelogStatusFacts for AI assistants

Lockpick is a security scanner for vibe-coded apps. It checks what your live site exposes and what a GitHub repo or AI skill would do before you install it, then gives you a fix prompt for Lovable, Bolt, Replit, Cursor or Claude Code.

Lockpick assesses public pages you are authorized to test, and public GitHub code it never runs.

© 2026 LockpickTermsPrivacyContactSign in