Checklist · 5 minute read
Web App Security Checklist
A web application is secure when authentication uses a central identity provider, authorization is enforced server-side on every request, inputs are validated and outputs encoded, security headers and content security policy are set, dependencies are scanned and pinned, secrets live in a vault, logging and monitoring detect abuse, infrastructure is hardened, and security testing is complete with findings resolved.
Most web application breaches exploit weaknesses that have been understood for years: broken access control, injection, weak authentication, misconfiguration, and vulnerable dependencies. This checklist covers the controls that prevent them, aligned with the OWASP Top Ten, with notes for modern server-rendered frameworks and AI features. It complements web application security and api security best practices, and reflects the standards FISTA Solutions applies in its web and mobile practice.
Who should use this checklist?
Engineering leads and security reviewers releasing web applications, platform teams owning shared web infrastructure, and product owners who need to know what secure means before launch.
Is authentication sound?
- Central identity provider with single sign-on where applicable; no home-grown password storage where avoidable.
- Strong password policy and MFA where credentials are managed locally; passwords hashed with a modern algorithm.
- Session management: secure, HTTP-only, same-site cookies; rotation on login; expiry and revocation.
- Account protection: rate limiting on authentication endpoints, lockout or challenge on abuse, secure reset flows.
- Token handling for APIs: short-lived access tokens, secure refresh, audience and scope validation.
Reference: ai access control for the broader access model.
Is authorization enforced server-side?
| Check | Evidence |
|---|---|
| Every data access checks the caller's permission on the server | Code review; tests |
| Object-level authorization prevents ID enumeration | Tests |
| Role and tenant boundaries enforced in queries, not only in UI | Tests |
| Server actions and API routes verify identity and permission | Code review |
| Admin functions separated and additionally protected | Review |
Reference: the modern web platform architecture whitepaper.
Are inputs validated and outputs encoded?
- Schema validation on all inputs at the boundary: API bodies, query parameters, form data, headers.
- Parameterized queries everywhere; no string-built queries.
- Output encoding appropriate to context; framework escaping not bypassed without review.
- File uploads validated by type and size, stored outside the web root, scanned where warranted.
- Server-side request forgery protections on any URL fetching.
- Deserialization of untrusted data avoided or constrained.
Are security headers and policies set?
- Content security policy restricting script, style, and connection sources.
- Strict transport security, frame protections, content-type options, referrer policy, permissions policy.
- Cross-origin resource sharing restricted to known origins.
- Cross-site request forgery protections on state-changing requests.
- Headers verified in production, not only in development.
Are dependencies controlled?
- Dependency scanning in CI with failure on high-severity findings.
- Lockfiles committed; versions pinned; updates reviewed.
- Minimal dependency footprint; unused packages removed.
- Build integrity: reproducible builds, signed artifacts where feasible.
- Third-party scripts on pages inventoried and restricted by content security policy.
Reference: ai supply chain security for the AI-specific supply chain.
Are secrets managed?
- Secrets in a vault or platform secret store; none in code, configuration files, or client bundles.
- Environment separation: development secrets never used in production.
- Rotation on schedule and on personnel change.
- Secret scanning in repositories and CI.
- Framework conventions for server-only environment variables respected and verified.
Reference: ai secrets management.
Is data protected?
- Encryption in transit everywhere; at rest for sensitive data.
- Data classification governing storage, logging, and third-party sharing.
- Personal data handled per privacy policy: minimization, retention, subject rights.
- Caching never stores personalized or sensitive responses at shared layers.
- Backups encrypted and access-controlled.
Reference: caching strategies for web apps and ai data privacy compliance.
Are logging and monitoring in place?
- Security-relevant events logged: authentication, authorization failures, admin actions, input validation failures.
- Logs redacted of secrets and sensitive data; access-controlled; retained per policy.
- Alerting on abuse patterns: credential stuffing, enumeration, unusual admin activity.
- Incident response runbook for web incidents.
Reference: the AI observability whitepaper for the AI-feature counterpart.
Is infrastructure hardened?
- Least-privilege cloud roles and network rules.
- Rate limiting and abuse protection at the edge.
- Web application firewall where appropriate.
- Patched runtimes and images; minimal base images.
- Infrastructure as code reviewed and scanned.
Reference: edge rendering and cdns.
Are AI features secured?
- Prompt injection defenses and content separation.
- Least-privilege tools and output validation for any agentic feature.
- Provider data terms and redaction for content sent to models.
- Adversarial tests in CI.
Reference: the LLM security checklist.
Has security testing been completed?
- Static and dynamic scanning in CI.
- Dependency and secret scanning passing.
- Security review of authentication, authorization, and data flows for this release.
- Penetration test completed for major releases with findings resolved or accepted with rationale.
- Findings tracked with owners and dates.
How should gaps be handled?
Authentication, authorization, secrets, and injection gaps block release. Header, dependency, and logging gaps block release beyond a limited audience. Infrastructure and testing gaps are closed on a dated plan with risk acceptance recorded.
How FISTA Solutions builds secure web applications
FISTA Solutions applies this checklist as part of the definition of done in its web and mobile practice: central authentication, server-side authorization on every access, validated inputs and encoded outputs, security headers and content security policy, scanned and pinned dependencies, vaulted secrets, redacted logging with alerting, hardened infrastructure, and security testing in CI with periodic penetration tests. AI features are secured through the AI enablement platform and AI agents practice, and forward deployed engineers run security reviews with client teams. The record behind the approach is 150+ projects with 99.9% uptime.
To run a security review on a web application, message FISTA on WhatsApp, or read nextjs performance checklist for the companion performance review.
Share-ready article cover
Download the generated social format.
Clear answers
Questions raised by this field note.
Straightforward guidance for evaluating scope, fit, and the next step.
01What should a web app security checklist include?
Authentication and session management, server-side authorization on every request, input validation and output encoding, security headers and content security policy, dependency scanning and pinning, secrets management, logging and abuse detection, infrastructure hardening, data protection, and security testing before release.
02What are the most common web application vulnerabilities?
Broken access control, injection including cross-site scripting, authentication and session weaknesses, security misconfiguration, vulnerable dependencies, insecure design, and insufficient logging, as catalogued in the OWASP Top Ten. Most are prevented by the controls on this checklist.
03How does security apply to server-rendered frameworks?
Server components and actions run trusted code, so authorization must be enforced in them on every data access, environment secrets must never reach client bundles, and framework caching semantics must not leak personalized data across users. Framework conventions help but do not replace review.
04How often should web apps be security tested?
Automated vulnerability scanning and dependency checks on every build, security review for significant changes such as new authentication flows or integrations, and penetration testing periodically, typically at least annually, and after major releases or architecture changes, with every finding tracked to resolution and re-tested. Continuous monitoring in production complements testing by catching what testing missed.
05How do AI features change web app security?
They add prompt injection, data leakage through model providers, and tool misuse as attack classes, requiring content separation, least-privilege tools, output validation, and provider data terms on top of the standard controls.
Continue exploring
Related capabilities
Start with the hard problem
Need the outcome owned, not merely analyzed?
Tell us where delivery is constrained. Weâll map the fastest credible path from intent to verified production.