Web App Security Audit Checklist: 25 Checks Before Launch

Quick answer: This checklist organizes 25 review points across authentication, authorization, data handling, and operations. Adapt it to the application’s requirements and combine supported automated findings with code review and tests. Completing the list does not establish that every vulnerability has been found.

By Gabriel CA · Kraftwire Software

· 11 min read

This checklist groups review tasks into authentication, authorization, data protection, API handling, infrastructure, dependencies, and monitoring. Review the application’s actual exposure, investigate findings, and identify coverage gaps.

AI Security App Review: The Reality of Vibe-Coded Software

Review generated code and deployment configuration independently of whether visible features work.

Apply the same security requirements to generated and manually written code. The scan corpus does not measure model priorities or establish why a finding occurred.

Why You Need a Security Audit Checklist for AI Apps

Use the checklist to organize review of actual controls and application-specific tests.

A checklist prompts a structured review of generated code; it cannot guarantee that data leaks are prevented. According to AppSec Santa, teams scoring low on security assessments should prioritize Code Security and Authentication as their first line of defense.

1. How Do You Audit Authentication?

Test authentication and session behavior alongside authorization and other controls. Weak authentication is a risk, but it does not make every other protection irrelevant.

Critical Authentication Checks

  • Password Policy: Set and enforce a policy appropriate to the authentication method, including length and compromised-password checks.
  • Session Management: Rotate session identifiers at authentication or privilege changes. For cookie-based sessions, HttpOnly limits script access and Secure limits transmission to secure connections; these flags do not prevent all XSS effects.
  • Multi-Factor Authentication (MFA): Test that the required authentication assurance is enforced for administrative actions, not merely enabled in a dashboard.
  • Brute Force Protection: Review account and network-based throttling, recovery paths, and abuse resistance. Rate limits reduce opportunities for abuse but do not guarantee prevention.

This illustrative attempt-count helper is not a complete lockout system. Enforce the result in the login path, record attempts reliably, handle concurrency, and consider shared-IP denial of service and distributed attacks. Its thresholds are example choices.

2. How Do You Audit Authorization?

Authentication verifies identity; authorization decides whether a particular operation is allowed. Test access to resources belonging to different users with authorized test accounts.

Critical Authorization Checks

  • Row-Level Security (RLS): Where the design uses PostgreSQL RLS, inspect privileges, policies, and bypass roles. Disabled RLS leaves access to table privileges; enabled RLS without applicable policies denies rows to subject roles. Permissive policies can expose rows. See the RLS guide.
  • IDOR Protection: Test reads and writes using separate authorized test accounts and resources with different ownership. An identifier alone is not authorization.
  • Server-Side Authorization: Verify privileged actions against trusted server-side identity and permission data. Client-side role state is not authoritative.

3. How Do You Audit Data Protection?

Review transport security, storage access, encryption, and key management according to the data and threat model. Investigate certificate and header findings; an audit does not guarantee discovery before exploitation.

Critical Data Protection Checks

  • Encryption in Transit: Check HTTPS behavior and certificate validity. The SSL checker reports supported certificate and connection observations; use appropriate protocol testing for a full TLS-version assessment.
  • HSTS Headers: Review Strict-Transport-Security and its scope. Browsers enforce a learned HSTS policy on later requests; first-contact protection requires prior knowledge, such as a valid preload entry.
  • Encryption at Rest: Review storage encryption, access control, and protection of encryption keys. Choose application-level encryption where the threat model requires it.
  • Data Minimization: Collect and retain only the data the application needs.

4. How Do You Audit API Security?

Review input handling and output use at API boundaries, including how untrusted data reaches interpreters or the browser.

Critical API Checks

  • Input Validation: Validate the expected structure and types of untrusted inputs. Separately use parameterized queries, safe interpreter APIs, and context-appropriate output handling; schema validation alone does not prevent injection.
  • Rate Limiting: Apply limits appropriate to request cost, identity, and infrastructure capacity, and test their failure behavior.
  • Error Handling: Return appropriate client errors without exposing internals, and redact sensitive values from logs.

These are alternative catch-clause fragments for an existing handler, not a standalone program. Redact sensitive fields before internal logging; a generic client response does not make unrestricted error logging safe.

5. How Do You Audit Your Infrastructure?

Review deployed configuration alongside code. Keep privileged credentials server-side, inspect public artifacts, and investigate supported findings from the security scanner.

Critical Infrastructure Checks

  • Environment Variables: Keep secrets such as STRIPE_SECRET_KEY and OPENAI_API_KEY out of client artifacts. The secret scanner checks supported public inputs for recognizable secrets, including exposed .env content.
  • CORS Configuration: Review which origins may read responses in browsers. Access-Control-Allow-Origin: * can be appropriate for intentionally public, non-credentialed resources; CORS is not authentication or general request blocking.
  • Security Headers: Review Content-Security-Policy with the CSP evaluator. CSP can limit some injection effects; it does not replace safe output handling.
  • Email Security: Review SPF, DKIM, and DMARC for sender authorization, message signing, and domain-alignment policy. They do not guarantee inbox placement or prevent every phishing message.

6. How Do You Audit Dependencies?

Verify dependency identities, versions, maintenance status, and known vulnerability reports before deployment. A suggested package name is not evidence that the package is legitimate.

Critical Dependency Checks

  • Automated Audits: Run supported checks such as npm audit or yarn audit and investigate advisories. Coverage depends on the package data and vulnerability sources used.
  • Maintenance: Review the project’s maintenance and response history; time since a release alone does not establish safety or abandonment.
  • Licenses: Review license obligations for the application’s intended use.

7. How Do You Audit Logging and Monitoring?

Review whether logging and alerts provide enough evidence to investigate relevant events. Monitoring complements preventive controls; it is not the only way to stop an attack.

Critical Monitoring Checks

  • Audit Logs: Record relevant authentication and permission events with appropriate retention, access control, and tamper resistance. Avoid logging credentials or unnecessary personal data.
  • Alerting: Investigate unusual authentication failures in context; they do not by themselves establish a bot attack.
  • Uptime Monitoring: Use uptime monitoring for supported availability observations. It does not prevent outages or establish that security controls work.

A 25-Point Security Audit Checklist

Adapt these review points to the application’s requirements. They are not a complete proof of security.

Authentication & Identity

Step 1

Password policy selected for the authentication method and enforced consistently.

Step 2

Passwords checked against known breach lists (HIBP).

Step 3

MFA enforced for all administrative and high-privilege roles.

Step 4

Cookie-based session settings reviewed, including HttpOnly, Secure, and whether SameSite=Lax fits the workflow. CSRF defenses tested separately.

Step 5

Session inactivity and maximum lifetimes chosen for the application’s risk and usability requirements.

Step 6

Rate limiting active on all login, signup, and password reset endpoints.

Authorization & Access Control

Step 7

Database privileges and, where used, RLS policies tested with the relevant roles, including Supabase’s anon role and bypass cases.

Step 8

Object-level authorization tested for the relevant read and write operations.

Step 9

Role-based access control (RBAC) logic verified on the server side.

Step 10

Public project keys distinguished from privileged credentials; the associated roles and backend access rules reviewed.

Data Security

Step 11

Full-site HTTPS with a valid, non-expired SSL certificate.

Step 12

HSTS policy reviewed; enable includeSubDomains only when all covered subdomains support HTTPS.

Step 13

Sensitive storage, encryption, key management, and access controls reviewed against the threat model.

Step 14

Database backups are encrypted, tested, and stored off-site.

API & Input Integrity

Step 15

Strict schema validation (e.g., Zod) on all incoming API payloads.

Step 16

Protection against NoSQL/SQL injection and XSS (Cross-Site Scripting).

Step 17

API error messages are generic and do not leak system or stack info.

Step 18

CORS response-access policy matched to the resource’s intended audience; authentication and CSRF defenses tested independently.

Infrastructure & Deployment

Step 19

No secrets (API keys, DB strings) present in the frontend JavaScript bundles.

Step 20

Security-header values reviewed for the application, including CSP, framing policy, and MIME-sniffing protection.

Step 21

DNSSEC and CAA records configured for the root domain.

Step 22

SPF authorizes intended sending systems, DKIM signing and validation are tested, and DMARC alignment and the intended policy are reviewed. The DMARC policy values are none, quarantine, or reject; they are not modes for SPF or DKIM.

Maintenance & Monitoring

Step 23

Known high and critical advisories reported by npm audit investigated and resolved or explicitly assessed under the project’s release policy.

Step 24

Centralized logging active for all authentication and authorization failures.

Step 25

Real-time alerts configured for unusual traffic spikes or mass data exports.

How Often Should You Perform an AI Security App Review?

Repeat review after changes that affect security-sensitive behavior and before release:

  • Supported Scans: Use SimplyScan for supported deployed-URL findings and investigate changes in results.
  • Application Tests: Review authorization and database policies when relevant code or configuration changes.
  • Release Review: Apply this checklist alongside requirements specific to the application.

Measure performance separately from security testing; slow behavior does not establish a security defect or its cause.

Related Free Tools for Your Audit

SimplyScan offers these tools for supported checks:

  • Security Headers Scanner · Inspect returned security headers.
  • Email Security Tester · Review supported SPF, DKIM-selector, and DMARC DNS observations.
  • Exposed Files Finder · Probe supported paths such as .env, .git, or docker-compose.yml; a clean result does not establish that every file is private.
  • JWT Debugger · Decode supplied token fields and inspect supported algorithm information; decoding alone does not verify authenticity.
  • CORS Tester · Inspect supported CORS response headers; it does not verify application authorization.

Browse our free tools and use their findings alongside application-specific review.

Aggregate Scan Figures

These live figures describe all scanned sites. They do not establish prevalence for an AI-built subgroup, compare development methods, or attribute findings to AI generation.

30% of the 119 live sites SimplyScan has scanned (36 sites) have at least one high or critical security issue.

13% of the 119 live sites SimplyScan has scanned (15 sites) have at least one high-severity web-security issue, such as a missing Content-Security-Policy or HSTS header.

Frequently asked questions

What is an AI security app review?

It reviews an application built with AI coding tools against the same relevant security requirements as other software. Inspect generated code and deployed configuration, and test dependency handling, authorization, and secret management.

How long does a web app security audit take?

Audit time depends on scope and the application. A SimplyScan URL scan takes about 30 seconds and supplies supported public findings to investigate. It does not establish the total review time or necessarily find the application’s most serious issue.

Is npm audit enough for a full security review?

No. npm audit reports known dependency advisories within its supported coverage. It does not assess every application authorization rule, deployed configuration, or exposed secret. Combine dependency review with other checks and tests.

Why is IDOR a major risk in AI-built apps?

IDOR is an object-authorization failure: a caller can access a resource they are not permitted to use by supplying its reference. It is not specific to AI-built apps. Test server-side authorization for protected reads and writes using appropriate test accounts.

Do I need a security audit if I have no users yet?

Review before exposing sensitive operations or data, even if the application has no users yet. Account count does not establish that the deployed service has no attack surface.

Can automated tools replace a manual security audit?

SimplyScan supplies supported public findings. Use those alongside code review and tests for application-specific authorization and business logic; a clean automated report does not establish complete security.

Related guides

  • Cursor App Security Checklist: 10 Things to Check Before You Ship · Before shipping a Cursor-built app, review secrets, database access, server-side authorization, input handling, errors, dependencies, browser headers, CORS, and session management. Test the controls relevant to your architecture and investigate deployed findings; a working interface does not establish that private data and actions are protected.
  • React Security Checklist: 10 Vulnerabilities to Fix Before Launch · React apps are client-side, making every secret and route guard visible to users. To secure your app before launch, you must move API keys to the server, sanitize HTML with DOMPurify, validate user-provided URLs, and enforce backend authentication for every sensitive request rather than relying on frontend logic.
  • Security Scan 101: How to Audit Your AI App for High-Severity Flaws · A URL scan can report supported exposed-secret patterns, public-response signals, and configuration findings. SimplyScan grades 8 dimensions, including security, speed, and SEO. Use the report alongside source review and authorized tests of application-specific behavior; scan duration and coverage vary.
  • Android vs. iOS Security: Which Mobile OS Better Protects Your AI-Built Web App? · Android and iOS provide device protections, but neither establishes that a web application’s backend permissions are correct. Compare the actual device, browser, update support, and configuration, then test application authorization and secret handling independently of the mobile platform.

All security guides · Free security tools · Platform scanners · Security checklist