Back to blog
4 min readAAppifyDevsWeb Development

Web Application Security Checklist: 15 Essentials Before Launch

  • web application security
  • security checklist
  • OWASP Top 10
  • secure launch
  • app security
  • penetration testing

A security incident in the first months after launch can cost you customer trust that took years to build. The good news is that most common attacks exploit a short list of well-known gaps that are straightforward to close before you go live.

Before launching a web application, make sure traffic is encrypted, authentication and access control are solid, every input is validated, secrets are kept out of code, dependencies are patched, and you have logging, backups and a plan for incidents. The 15 checks below cover the essentials and map closely to the OWASP Top 10.

What is the OWASP Top 10 and why does it matter?

The OWASP Top 10 is a widely used awareness document from the Open Worldwide Application Security Project that lists the most critical categories of web application security risk, such as broken access control, injection and security misconfiguration. It is not a complete standard, but it is the best starting point for any pre-launch review. For a deeper checklist, OWASP also publishes the Application Security Verification Standard (ASVS).

The 15-point pre-launch security checklist

#CheckWhat good looks like
1HTTPS everywhereTLS on every page and API, HTTP redirected to HTTPS, HSTS enabled
2Password storagePasswords hashed with Argon2id or bcrypt, never stored in plain text or with fast hashes
3Multi-factor authenticationMFA available for users and enforced for admins
4Access controlEvery request checked server-side for permission, including record ownership
5Input validationValidated on the server against a schema; parameterised queries or an ORM to prevent SQL injection
6Output encodingUser content escaped by the templating framework to prevent cross-site scripting
7Secure sessions and cookiesCookies set as HttpOnly, Secure and SameSite; sessions expire and rotate on login
8CSRF protectionAnti-CSRF tokens or SameSite cookies on state-changing requests
9Security headersContent-Security-Policy, X-Content-Type-Options and frame protections configured
10Secrets managementNo keys in the repository; secrets in environment variables or a manager such as AWS Secrets Manager
11Dependency updatesKnown vulnerabilities checked with Dependabot, npm audit, Composer audit or Snyk
12Rate limitingLimits on login, password reset, OTP and public APIs to slow brute-force attacks
13File uploadsType and size checked, files stored outside the web root or in object storage, never executed
14Logging and monitoringSecurity events logged without sensitive data, with alerts on unusual activity
15Backups and recoveryAutomated, encrypted backups that have actually been restored in a test

Which checks are most often missed?

Broken access control

Hiding a button in the interface is not security. If a user can change an ID in a URL or API request and see someone else's invoice, the application has broken access control. Every endpoint must check, on the server, that the current user is allowed to see or change that specific record.

Secrets in code

API keys and database passwords committed to a repository are easy to leak, especially if the repository is ever made public or shared with a contractor. Use a secret scanner such as GitHub secret scanning or Gitleaks, and rotate any key that has ever been committed.

Untested backups

A backup you have never restored is a hope, not a plan. Run a restore into a separate environment before launch and record how long it takes.

How should security fit into your development process?

  • Automate checks in CI. Run dependency scanning, linting and tests on every pull request. Our guide to setting up a CI/CD pipeline shows where these fit.
  • Review code with security in mind. Make access control and input handling part of every code review.
  • Apply least privilege to cloud accounts, database users and admin panels.
  • Separate environments. Keep staging and production data, credentials and access apart.

Do you need a penetration test before launch?

It depends on what you store and who your customers are. If you handle payments, health data, financial records or enterprise clients, an independent penetration test is strongly advisable, and some customers or regulations will require one. For a smaller product, a careful internal review against this checklist and the OWASP Top 10, plus automated scanning with a tool such as OWASP ZAP, is a sensible minimum. Either way, plan a re-test after major changes.

What happens after launch?

Security is ongoing. Keep dependencies patched, review access when people leave, watch your logs and have a simple incident response plan: who is contacted, how you contain the issue and how you inform affected users. Our article on application monitoring and incident response covers this in detail, and what a maintenance plan should include explains how to keep patches on schedule.

Key takeaways

  • Most common attacks exploit well-known gaps: weak access control, injection, leaked secrets and outdated dependencies.
  • Use the OWASP Top 10 as your baseline and automate dependency and secret scanning in CI.
  • Test your backups and consider a penetration test if you handle sensitive data.

Want a second pair of eyes before launch? We can review your application against this checklist, fix the gaps and keep it patched afterwards. Ask about maintenance and security support, or see how we work.


Frequently Asked Questions

What should a web application security checklist include?

At minimum: HTTPS everywhere, strong password hashing, multi-factor authentication, server-side access control, input validation, output encoding, secure cookies, CSRF protection, security headers, secrets management, dependency scanning, rate limiting, safe file uploads, logging and tested backups.

What is the OWASP Top 10?

The OWASP Top 10 is a widely used awareness document from the Open Worldwide Application Security Project that lists the most critical categories of web application security risk, such as broken access control and injection.

Do I need a penetration test before launching my web app?

If you handle payments, health or financial data, or sell to enterprise customers, an independent penetration test is strongly advisable and may be required. Smaller products should at least do a careful review against the OWASP Top 10 and run automated scanning.

How should passwords be stored in a web application?

Passwords should be hashed with a slow, purpose-built algorithm such as Argon2id or bcrypt. They should never be stored in plain text or with fast general-purpose hashes.

How do I keep API keys out of my code?

Store secrets in environment variables or a secrets manager such as AWS Secrets Manager, use a secret scanner on your repository, and rotate any key that has ever been committed.


All articles

Ready to build your product?

Talk to the team that wrote this guide.