A pre-launch web app security checklist for India covers ten areas: hardened authentication and session management, HTTPS/TLS everywhere, security headers like CSP and HSTS, strict input validation, proper secrets management, dependency and supply-chain scanning, rate limiting on public endpoints, logging and monitoring, tested backups, DPDP Act-aligned data handling, and a final pre-launch VAPT before the domain goes live. Skipping any one of these turns v1 into an easy target on day one, since attackers scan new IP ranges and DNS records within hours of launch. The checklist below walks through each control with what to actually implement, not just what to know.
Why this security checklist matters before day one
Indian founders under launch pressure treat security as a post-launch cleanup task. That's backwards. Automated scanners probe newly registered domains and fresh cloud IP ranges almost immediately after DNS propagates — long before a startup has real users, let alone a security budget. A misconfigured S3 bucket, a debug endpoint left open, or a default admin password found in week one costs far more in incident response and customer trust than the few days it takes to close these gaps before launch.
This isn't a compliance checkbox exercise. It's the minimum bar that separates "we shipped fast" from "we shipped fast and got breached in month one." Each section below is something a founder or small engineering team can implement directly, or verify a vendor has implemented, before the app goes live.
Authentication and session hardening
Authentication is the front door, and most breaches start there. Before launch, confirm:
- Passwords are hashed with bcrypt, scrypt, or Argon2 — never MD5, SHA1, or plain reversible encryption
- Multi-factor authentication is available, and enforced for admin and privileged accounts at minimum
- Session tokens are long, random, generated server-side, and rotated on privilege change (e.g., password reset, role upgrade)
- Session cookies carry
HttpOnly,Secure, andSameSite=StrictorLaxattributes - Account lockout or exponential backoff exists on login to blunt credential-stuffing attempts
- Password reset flows use single-use, time-bound tokens — not predictable links or security questions alone
- Default or seed admin credentials created during development are rotated or deleted before launch
/admin panel still reachable with the framework's default seed credentials from local development. Grep your codebase and database seed scripts for hardcoded usernames and passwords before you go live — not after.Enable TLS and set security headers
HTTPS is table stakes, but "we have an SSL certificate" is not the same as "TLS is configured correctly."
- Force HTTPS everywhere with an HTTP-to-HTTPS redirect; no mixed content, no plaintext fallback
- Use TLS 1.2 minimum, prefer TLS 1.3, and disable legacy protocols and weak cipher suites
- Set HSTS (
Strict-Transport-Security) with a meaningfulmax-ageso browsers never downgrade to HTTP on repeat visits - Set a Content-Security-Policy (CSP) that restricts script, style, and frame sources — this is the single most effective header against XSS and clickjacking chains
- Add
X-Content-Type-Options: nosniff,X-Frame-Options: DENY(or CSPframe-ancestors), andReferrer-Policy: strict-origin-when-cross-origin - Verify certificate auto-renewal is configured so the app doesn't silently break when a cert expires post-launch
MFA and session controls] --> B[Enable TLS and Headers
HTTPS CSP HSTS] B --> C[Validate Input
Server side checks] C --> D[Scan Dependencies
Known CVEs] D --> E[Pre Launch VAPT
Independent test] style A fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style B fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style C fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style D fill:#1e3d2f,stroke:#10B981,color:#e2e8f0 style E fill:#5f1e1e,stroke:#EF4444,color:#e2e8f0
Know your vulnerabilities before attackers do
Run a free VAPT scan — takes 5 minutes, no signup required.
Book Your Free ScanValidate every input, server-side
Client-side validation is a UX convenience, not a security control — assume every request can arrive crafted by hand.
- Validate and sanitize all user input on the server, using allowlists (accepted formats/values) over denylists wherever practical
- Use parameterized queries or an ORM's safe query builder to eliminate SQL injection; never string-concatenate user input into a query
- Escape output contextually (HTML, JS, URL) to prevent stored and reflected XSS
- Validate file uploads by type, size, and content — not just file extension — and store uploads outside the web root or in isolated object storage
- Enforce request size limits and reject malformed JSON/XML early to reduce parser-based attack surface
- Apply the same validation discipline to API endpoints consumed by a mobile app or partner integration, not just the web UI
Secrets management
Hardcoded secrets in source control are one of the most preventable pre-launch failures.
- Move all API keys, database credentials, and signing secrets into environment variables or a dedicated secrets manager — never commit them to git
- Scan your git history (not just the current commit) for previously committed secrets, and rotate any that were ever exposed
- Use different credentials per environment (dev, staging, production); a leaked staging key should never unlock production data
- Restrict service-account and API key permissions to the minimum the app actually needs (least privilege), not broad admin scopes for convenience
- Set up automated secret-scanning in CI so a leaked key is caught before merge, not after launch
Scan dependencies and the supply chain
Modern web apps are mostly other people's code. Your dependency tree is part of your attack surface.
- Run an automated dependency/vulnerability scan (
npm audit, Snyk, GitHub Dependabot, or OWASP Dependency-Check) before every release, not just pre-launch - Pin dependency versions and review changelogs before bumping major versions, especially for auth or crypto libraries
- Remove unused packages, dev-only tools, and debug middleware from the production build
- Check container base images and any third-party scripts loaded on the frontend (analytics, chat widgets) for known issues — a compromised third-party script is a direct path into your users' sessions
Rate limiting on public endpoints
Without rate limiting, login forms, OTP endpoints, search APIs, and password-reset flows are open invitations to brute force and abuse.
- Apply rate limits per IP and per account on login, signup, OTP verification, and password reset
- Add stricter limits or CAPTCHAs on endpoints that trigger costly operations (SMS OTP, email sends, PDF generation)
- Rate-limit public APIs to prevent scraping and to control infrastructure cost from automated abuse
- Return generic error responses so rate-limit and lockout behaviour doesn't leak whether an account exists (avoid user enumeration)
Logging, monitoring, and backups
You cannot respond to what you cannot see, and you cannot recover from what you never backed up.
| Control | What to implement before launch | Why it matters |
|---|---|---|
| Application logging | Log auth events, admin actions, and errors — never log passwords, tokens, or full card/PII data | Enables incident investigation without creating a new data leak |
| Centralized monitoring | Aggregate logs and set alerts for repeated failed logins, privilege changes, and anomalous traffic | Turns silent compromise into a detected incident |
| Uptime and error monitoring | Configure alerting for 5xx spikes, downtime, and unusual latency | Confirms the app is actually reachable and behaving post-launch |
| Automated backups | Schedule database and file-storage backups with a tested restore process | A backup you have never restored is not a backup |
| Backup encryption and access control | Encrypt backups at rest and restrict who can access or restore them | Backups are a high-value target if left unprotected |
| Incident response contact | Document who gets paged when an alert fires | Prevents a 2 AM alert from going unanswered |
DPDP data-handling basics
India's Digital Personal Data Protection (DPDP) Act 2023 applies to any app processing personal data of Indian users, from day one — there is no "we're too small" exemption for the core safeguard obligations.
- Collect only the personal data your app actually needs (data minimisation), and avoid over-collecting "just in case" fields at signup
- Obtain clear, specific consent before collecting personal data, and provide an accessible way for users to withdraw it
- Apply "reasonable security safeguards" — encryption in transit and at rest, access controls, and breach-detection capability — to any system holding personal data
- Have a documented process for responding to a personal data breach, since the Act requires timely reporting to affected users and the Data Protection Board
- Map where personal data is stored and processed (including third-party vendors and analytics tools) so you can actually answer a data-subject access request
Run a pre-launch VAPT
Every control above reduces risk individually, but only an independent Vulnerability Assessment and Penetration Testing (VAPT) exercise validates that they actually work together, under realistic attacker conditions, before real users and real data are on the line.
- Run automated + manual VAPT covering OWASP Top 10 categories (injection, broken access control, security misconfiguration, and the rest) against the staging or pre-production environment
- Test authenticated flows specifically — most serious findings live behind login, not on the public marketing pages
- Re-test after fixes, since a patched finding that reintroduces the same bug in a follow-up commit is common under launch-week pressure
- For regulated sectors (fintech, healthtech, insurtech), plan for a VAPT delivered with a CERT-In empanelled partner, since some regulators and enterprise customers require that specific credential on the report
- Treat VAPT as a recurring practice tied to every major release, not a one-time pre-launch gate
Bringing it together
Bachao.AI works with Indian founders shipping v1 web apps who need this checklist executed, not just read. Dhisattva AI Pvt Ltd built the underlying automated scanning approach for teams without a dedicated security engineer who still need to launch defensibly. Whichever controls you implement in-house, treat the final VAPT as non-negotiable — it's the step that turns a checklist into verified evidence.
Explore more launch-readiness and compliance guides on the blog.
External references
- OWASP Top 10 — owasp.org/www-project-top-ten
- OWASP Secure Headers Project — owasp.org/www-project-secure-headers
- CERT-In advisories — cert-in.org.in
- MeitY — Digital Personal Data Protection Act 2023 — meity.gov.in