Secrets in your responses
Catch API keys, private keys, database URLs, and sensitive fields in outgoing responses. Septr can redact the value before the client sees it and records the evidence for review.
Runtime security middleware
AI-generated apps move fast. Security checks usually arrive later — after a secret reaches a bundle, a route ships without authorization, or an AI endpoint starts burning through quota. Septr finds those failures before they become an incident, then protects the app at runtime.
No signup · Public URL · Results in ~30 seconds
In-process · In-memory · Fail-open — protection that does not become an outage.
The actual problem
AI-generated code is productive. It can also create a plausible route, response, or integration before anyone has checked its security boundary.
Catch API keys, private keys, database URLs, and sensitive fields in outgoing responses. Septr can redact the value before the client sees it and records the evidence for review.
Compare identity claims with route and body identifiers, flag missing authentication, and stop the classic “change the ID and read someone else's record” failure.
Put limits around expensive routes and watch provider quota signals. A public AI endpoint should not be an unlimited charge against your card.
Evidence from the field
Septr Research studies AI-generated source code and public deployments with the same rules engine. The pattern is clear: a repository finding becomes a real incident when a credential is compiled into a client bundle.
Read the researchThe engines
Each engine evaluates requests and responses in memory, then records the detection, evidence, latency, and verdict for review.
22 patterns — OpenAI, Stripe, AWS, GitHub, JWT, private keys, DB URIs — caught in response bodies before they ship.
JWT sub vs route :id. Cross-tenant access is blocked with a 403.
password_hash, ssn, stripe_secret_key → [REDACTED]. New field shapes trigger schema-drift alerts.
14 patterns — UNION SELECT, OR 1=1, WAITFOR DELAY — in bodies and query strings.
17 patterns — <script>, onerror, javascript:, event handlers — neutralized on input.
24 jailbreak patterns — DAN, role overrides, system-prompt extraction, tool-call manipulation.
Blocks internal ranges and 169.254.169.254 metadata fetches. file:// and gopher:// don't pass either.
Sliding window per IP and route. Static assets bypassed automatically.
Detects 429s and quota exhaustion in provider responses — before your bill does.
Routes without a Bearer token get flagged. Knows /health and /login are supposed to be public.
Negative pricing, 100%+ discounts, privilege fields in request bodies — caught before your checkout is.
Tenant-aware response scans. If tenant A's rows end up in tenant B's payload, you'll know first.
How it works
One import, one line. Express, Next.js, Hono, Fastify, Flask, FastAPI, Gin, net/http.
In-process and in-memory. Static assets skip the pipeline. Telemetry buffers async and flushes in batches — the hot path never waits.
The entire pipeline is wrapped in try/catch. If Septr ever trips, it steps aside — your app keeps serving traffic. Verified under sustained load: zero memory growth, zero unhandled rejections.
Every detection lands in the dashboard as a per-engine incident — with latency, pattern, and verdict. That's your SOC 2 evidence, collected automatically while you sleep.
The dashboard
Each engine reports its verification state, latency, pattern, and verdict. Security teams get an incident history they can review; developers get a concrete route and payload to fix.
Scan a public deployment for free, or add runtime protection with one middleware import.