Everything we look for

200+ checks, one scanner

Every security, configuration, infrastructure, compliance and legal check VibeLegit runs on your live site — in a single scan. Filter by category below.

Cross-site scripting (XSS) sinks

Flags unsafe HTML-injection patterns like dangerouslySetInnerHTML and document.write that can execute attacker input.

Open redirect

Tests redirect parameters (?redirect, ?next, ?url, ?return) for attacker-controlled off-site redirection.

CORS misconfiguration

Detects a wildcard or reflected Access-Control-Allow-Origin, especially when combined with credentials.

CORS credential theft

Confirms cross-origin requests with credentials cannot be read by an arbitrary origin.

Clickjacking exposure

Checks the page cannot be framed by other sites via X-Frame-Options or CSP frame-ancestors.

Outdated JS library (known CVE)

Identifies jQuery, Lodash, Moment, Bootstrap and AngularJS versions with published CVEs.

Known-vulnerable dependencies

Flags front-end libraries and frameworks shipping at versions with public advisories.

Mixed content

Finds HTTP scripts, styles, images or media loaded on an HTTPS page.

Missing CSRF token

Checks state-changing POST forms for a CSRF protection token.

Exposed API keys

Scans page source for leaked OpenAI, Google, AWS, Stripe, Slack and GitHub keys.

Exposed database connection string

Detects Postgres, MySQL, MongoDB or Redis credentials embedded in client-side code.

Supabase service-role key exposure

Flags the admin service_role key being shipped to the browser.

Supabase Row-Level Security

Surfaces tables likely missing RLS, where any user could read or write all rows.

Public write to sensitive tables

Checks that the anon key cannot insert or update rows in privileged tables.

World-readable storage buckets

Flags object-storage buckets that expose files to anyone with the URL.

Directory listing exposed

Probes /uploads, /files, /backup, /admin and /logs for a browsable auto-index.

Sensitive file exposure

Requests /.env, /.git/config, /wp-config.php, backups and config files.

Admin route exposure

Checks common admin and dashboard routes are gated, not publicly reachable.

Error-page information disclosure

Triggers a 404 and looks for stack traces, framework internals or absolute file paths.

JWT without expiration

Finds JWTs in source with no exp claim, or one set years into the future.

IDOR on object access

Reviews object references for insecure direct access to other users’ records.

Source maps in production

Detects published .map files that hand attackers your original source.

Debug endpoints exposed

Checks for reachable debug, test or introspection routes in production.

File upload validation

Reviews upload handling for type checks and SVG sanitisation.

SQL injection vectors

Looks for query surfaces that echo unsanitised input into the database.

Subresource Integrity (SRI)

Flags CDN scripts (cdnjs, jsDelivr, unpkg, googleapis) loaded without an integrity hash — a supply-chain risk.

Content-Security-Policy present

Verifies a CSP header is set to constrain where scripts and resources load from.

CSP disallows unsafe-inline

Checks the CSP does not weaken itself by allowing inline scripts.

CSP disallows unsafe-eval

Checks the CSP blocks eval-style dynamic code execution.

Strict-Transport-Security (HSTS)

Confirms HSTS tells browsers to always use HTTPS for the domain.

HSTS max-age & includeSubDomains

Checks HSTS uses a long max-age and covers subdomains.

X-Content-Type-Options: nosniff

Verifies the header that stops browsers MIME-sniffing responses into scripts.

Referrer-Policy configured

Checks referrer leakage of full URLs to third parties is restricted.

Permissions-Policy configured

Confirms powerful browser features (camera, mic, geolocation) are denied by default.

Cross-Origin isolation (COOP/COEP/CORP)

Checks the cross-origin isolation headers that harden against side-channel leaks.

X-Powered-By header removed

Verifies the framework fingerprint header is not advertised.

Server version header hidden

Checks the Server banner does not leak exact software versions.

Cache-Control on sensitive responses

Confirms authenticated pages are not cached by browsers or proxies.

Cookies marked Secure

Checks each Set-Cookie carries the Secure flag so it never travels over HTTP.

Cookies marked HttpOnly

Checks session cookies are not readable by JavaScript via document.cookie.

Cookie SameSite attribute

Verifies cookies set an explicit SameSite value to blunt CSRF.

No session ID in URL

Confirms session identifiers are in cookies, not shareable query strings.

Cookie prefixes (__Host- / __Secure-)

Checks sensitive cookies use hardened name prefixes.

Reasonable cookie expiry

Flags cookies with excessively long lifetimes.

Password field autocomplete

Checks password inputs set autocomplete to off / new-password / current-password.

No console logging of secrets

Reviews client code for console output that could leak tokens or data.

Minified production build

Confirms assets are minified, not shipped as readable development code.

No test routes in production

Checks temporary or example routes were not left live.

Environment separation enforced

Reviews that staging config and keys are not present in production.

HTTPS enforced site-wide

Confirms the site is served over HTTPS everywhere.

HTTP → HTTPS redirect

Checks a plain HTTP request is redirected to the secure version.

Valid TLS certificate

Verifies the certificate chains to a trusted authority.

Certificate not expiring soon

Warns when the TLS certificate is close to expiry — high within 30 days, critical within 7.

Certificate covers domain (SAN)

Checks the certificate is actually valid for the scanned hostname.

HTTP/2 support

Checks the server negotiates HTTP/2 (via ALPN) rather than legacy HTTP/1.1 only.

Modern TLS version (1.2+)

Confirms the server negotiates TLS 1.2 or 1.3.

TLS 1.0 / 1.1 disabled

Checks legacy, deprecated TLS versions are turned off.

No weak cipher suites

Reviews the negotiated ciphers for known-weak algorithms.

Perfect forward secrecy

Confirms key exchange protects past sessions if the key leaks.

HSTS preload eligible

Checks the domain qualifies for the browser HSTS preload list.

No dangling DNS records

Flags DNS entries pointing at de-provisioned services.

Subdomain takeover protection

Checks subdomains cannot be claimed by an attacker.

Staging subdomain not public

Finds forgotten staging or preview subdomains reachable from the internet.

Dev environment not public

Checks development builds are not exposed publicly.

Backup files not accessible

Probes for downloadable database or file backups.

Directory listing disabled

Confirms web directories do not return an auto-generated index.

robots.txt sane

Reviews robots.txt for accidental exposure of private paths.

security.txt present

Checks for a security.txt disclosure contact.

SPF record configured

Verifies an SPF record to prevent email spoofing from your domain.

DKIM configured

Checks outbound mail is DKIM-signed.

DMARC policy set

Confirms a DMARC policy governs how spoofed mail is handled.

Login rate limiting

Checks authentication endpoints throttle repeated attempts.

Brute-force lockout

Reviews protection against automated password guessing.

Account enumeration protection

Confirms responses do not reveal whether an account exists.

Multi-factor auth available

Checks a second authentication factor is offered.

Reasonable password policy

Reviews minimum password strength requirements.

API authentication required

Confirms API endpoints require authentication, not open access.

API rate limiting

Checks APIs throttle abusive request volumes.

Analytics fire after consent

Flags trackers that load before the user opts in, as GDPR requires.

GDPR lawful basis stated

Checks the site documents why it processes personal data.

Right-to-erasure path

Confirms users have a route to request deletion of their data.

Data export capability

Checks users can obtain a copy of their personal data.

Data retention policy referenced

Reviews whether a documented data-retention period exists.

No PII exposed in URLs

Flags personal data leaked through query strings or referrers.

Third-party trackers inventoried

Lists analytics and tracking scripts that share data with third parties.

Privacy Policy present

Checks a privacy policy is published — required the moment you collect any personal data.

Terms of Service present

Confirms terms exist to protect you against abuse and misuse.

Cookie consent mechanism

Checks for a consent banner before non-essential cookies are set.

Contact / DPO info listed

Verifies data-controller or DPO contact details are available.

Accessibility (WCAG) basics

Flags missing image alt text and other common ADA-lawsuit triggers.

Copyright & licensing notice

Checks for copyright and, where relevant, open-source licensing disclosure.