All checks

CHECKS

Everything SetRepo checks

106 checks across your code, its dependencies, its configuration and your live site. Quick scans run every check except the AI review, which deep scans add. Live-site checks run when you add your URL; the ones that look for exposed files and open data run only on a domain you verify.

Access control32

  • IDOR: records loaded by ID without an ownership checkRead guide
  • AI review of access control and IDORRead guide
  • Admin endpoints with no authenticationRead guide
  • Admin endpoints that check login but not roleGuide coming soon
  • Endpoints that change data without authenticationGuide coming soon
  • Unauthenticated endpoints that call paid AI APIsGuide coming soon
  • Pages protected only in the browserGuide coming soon
  • Supabase Row Level Security turned offRead guide
  • Supabase policies that allow every rowGuide coming soon
  • Public Supabase storage bucketsGuide coming soon
  • Supabase tables readable with the anon key (live, verified domains)Guide coming soon
  • Firebase security rules open to anyoneGuide coming soon
  • Firebase Realtime Database readable by anyone (live, verified domains)Guide coming soon
  • Firestore readable by anyone (live, verified domains)Guide coming soon
  • JWT read without signature verificationGuide coming soon
  • JWT signed without an expiryGuide coming soon
  • Auth token stored in localStorageGuide coming soon
  • Auth token returned in the body for bearer useGuide coming soon
  • No logout or token revocationGuide coming soon
  • Logout that doesn't revoke the session or tokenGuide coming soon
  • No refresh-token flowGuide coming soon
  • Cookie sessions without CSRF protectionGuide coming soon
  • Login and signup endpoints without rate limitingGuide coming soon
  • Export and password-reset endpoints without rate limitingGuide coming soon
  • Account enumeration through login or reset responsesGuide coming soon
  • Password-reset token returned in the responseGuide coming soon
  • Password-reset tokens that never expireGuide coming soon
  • Passwords hashed with a fast, unsalted hashGuide coming soon
  • Non-cryptographic randomness for tokensGuide coming soon
  • MD5 or SHA-1 used for security tokensGuide coming soon
  • Mass assignment from the request bodyGuide coming soon
  • One handler serving read and write methods uncheckedGuide coming soon

Business logic3

Secrets6

Injection6

  • SQL injection from request inputRead guide
  • NoSQL injectionGuide coming soon
  • Supabase filter injectionGuide coming soon
  • Open redirects from user inputGuide coming soon
  • Python security issues (Bandit)Guide coming soon
  • JavaScript security lint rules (ESLint)Guide coming soon

Dependencies2

Infra & config18

  • CORS allows any origin with credentialsRead guide
  • Dev origins in the production CORS allowlistGuide coming soon
  • Debug mode enabledGuide coming soon
  • Debug endpoints exposed as routesGuide coming soon
  • Containers running as rootGuide coming soon
  • chmod 777 in a DockerfileGuide coming soon
  • Dockerfile and infrastructure misconfigurationGuide coming soon
  • Containers without resource limitsGuide coming soon
  • Internal addresses hardcoded in sourceGuide coming soon
  • Outbound HTTP calls without a timeoutGuide coming soon
  • Rate limiter using in-process storageGuide coming soon
  • Session store in process memoryGuide coming soon
  • Cacheable responses next to authenticated routesGuide coming soon
  • Per-user responses without a Vary headerGuide coming soon
  • No Cache-Control policy on an authenticated appGuide coming soon
  • File uploads without type validationGuide coming soon
  • Missing database indexesGuide coming soon
  • Missing foreign keysGuide coming soon

Live site39

  • No Content-Security-Policy headerGuide coming soon
  • No HSTS headerGuide coming soon
  • Short HSTS max-ageGuide coming soon
  • X-Content-Type-Options not set to nosniffGuide coming soon
  • No Referrer-Policy headerGuide coming soon
  • No clickjacking protectionGuide coming soon
  • Server version disclosed in headersGuide coming soon
  • Cookies without the Secure attributeGuide coming soon
  • Cookies without the HttpOnly attributeGuide coming soon
  • Cookies with a weak SameSite settingGuide coming soon
  • HTTP not redirecting to HTTPSGuide coming soon
  • HTTP redirecting somewhere other than HTTPSGuide coming soon
  • HTTP TRACE method enabledGuide coming soon
  • Risky HTTP methods exposedGuide coming soon
  • Directory listing enabled (verified domains)Guide coming soon
  • Downloadable .env files (verified domains)Guide coming soon
  • Downloadable .git folder (verified domains)Guide coming soon
  • Downloadable backup archives (verified domains)Guide coming soon
  • Downloadable database dumps (verified domains)Guide coming soon
  • Exposed .DS_Store files (verified domains)Guide coming soon
  • Public JavaScript source mapsGuide coming soon
  • HTTPS not availableGuide coming soon
  • TLS certificate that doesn't validateGuide coming soon
  • Expired TLS certificateGuide coming soon
  • TLS certificate expiring within daysGuide coming soon
  • TLS certificate expiring within a monthGuide coming soon
  • TLS 1.1 or older still enabledGuide coming soon
  • Weak TLS ciphersGuide coming soon
  • Possible subdomain takeoverGuide coming soon
  • No CAA recordsGuide coming soon
  • DNSSEC not enabledGuide coming soon
  • No NS recordsGuide coming soon
  • Only one nameserverGuide coming soon
  • Domain registration expiredGuide coming soon
  • Domain registration expiring soonGuide coming soon
  • No SPF recordGuide coming soon
  • No DMARC recordGuide coming soon
  • DMARC set to monitor onlyGuide coming soon
  • DKIM not foundGuide coming soon