Skip to content
JBJamie Blair
TypeScriptNext.jsSecurityOWASP

Security Scanner

Enter any public URL and get a real-time security header audit. Checks 9 HTTP security headers, scores them individually, and returns an overall A–F grade. The API validates and sanitises all input, blocks private/internal URLs (SSRF prevention), and runs entirely on Vercel Edge - no external dependencies.

Bank vault door with scanning security beams and a floating checklist, representing comprehensive security header auditing.

Headers checked

9

Grading

A–F

SSRF protection

Yes

Latency

< 2s

How it works

1URL Input
2Validate & Sanitise
3SSRF Check
4HTTP HEAD Request
5Header Analysis
6Score & Grade
7Return Findings

What It Checks

Nine security-critical headers: HTTPS enforcement, Strict-Transport-Security (HSTS with max-age validation), Content-Security-Policy (CSP), X-Content-Type-Options (nosniff), X-Frame-Options / CSP frame-ancestors (clickjacking), Referrer-Policy, Permissions-Policy, Server header disclosure, and X-Powered-By disclosure. Each gets an individual pass/warn/fail/info verdict.

Scoring

Score is the percentage of non-informational checks that pass. Grade thresholds: A (90%+), B (75%+), C (60%+), D (40%+), F (below 40%). Warnings and failures both reduce the score. Informational findings (like server disclosure) are shown but don't affect the grade.

API Design

Single POST endpoint accepts a URL string. Input normalised (auto-prepends https:// if missing), parsed with URL constructor, validated against SSRF patterns. Tries HTTP HEAD first, falls back to GET if HEAD is blocked. 10-second timeout with AbortController. Returns structured JSON with grade, score, response time, and per-header findings array.

Security

  • SSRF prevention: blocks localhost, private IP ranges (10.x, 172.16-31.x, 192.168.x), .local, .internal
  • Protocol whitelist: only HTTP and HTTPS allowed
  • URL length capped at 2048 characters
  • 10-second request timeout prevents slow-loris abuse
  • No user data stored - stateless scan and discard
  • HEAD-first strategy minimises bandwidth to target

Next step / direct enquiry

Want to discuss the engineering behind this work?

Send a private message about a role, collaboration, or technical problem.