Skip to content
Back to Blog
·9 min read·guides

Security Checklist Before Launching a Web App in India

A practical pre-launch web app security checklist for Indian founders covering auth hardening, TLS, security headers, DPDP data handling, and a final VAPT.

BR

Bachao.AI Research Team

Cybersecurity Research

Get Your Free VAPT Scan

What this means for your business

Indian SMBs without documented security controls face 3× higher breach costs (IBM Cost of a Data Breach 2024). This guide helps you close that gap.

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:

    1. Passwords are hashed with bcrypt, scrypt, or Argon2 — never MD5, SHA1, or plain reversible encryption
    2. Multi-factor authentication is available, and enforced for admin and privileged accounts at minimum
    3. Session tokens are long, random, generated server-side, and rotated on privilege change (e.g., password reset, role upgrade)
    4. Session cookies carry HttpOnly, Secure, and SameSite=Strict or Lax attributes
    5. Account lockout or exponential backoff exists on login to blunt credential-stuffing attempts
    6. Password reset flows use single-use, time-bound tokens — not predictable links or security questions alone
    7. Default or seed admin credentials created during development are rotated or deleted before launch
⚠️
WARNING
A shockingly common pre-launch finding is a /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."

    1. Force HTTPS everywhere with an HTTP-to-HTTPS redirect; no mixed content, no plaintext fallback
    2. Use TLS 1.2 minimum, prefer TLS 1.3, and disable legacy protocols and weak cipher suites
    3. Set HSTS (Strict-Transport-Security) with a meaningful max-age so browsers never downgrade to HTTP on repeat visits
    4. 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
    5. Add X-Content-Type-Options: nosniff, X-Frame-Options: DENY (or CSP frame-ancestors), and Referrer-Policy: strict-origin-when-cross-origin
    6. Verify certificate auto-renewal is configured so the app doesn't silently break when a cert expires post-launch
graph TD A[Harden Auth
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 Scan

Validate every input, server-side

Client-side validation is a UX convenience, not a security control — assume every request can arrive crafted by hand.

    1. Validate and sanitize all user input on the server, using allowlists (accepted formats/values) over denylists wherever practical
    2. Use parameterized queries or an ORM's safe query builder to eliminate SQL injection; never string-concatenate user input into a query
    3. Escape output contextually (HTML, JS, URL) to prevent stored and reflected XSS
    4. Validate file uploads by type, size, and content — not just file extension — and store uploads outside the web root or in isolated object storage
    5. Enforce request size limits and reject malformed JSON/XML early to reduce parser-based attack surface
    6. Apply the same validation discipline to API endpoints consumed by a mobile app or partner integration, not just the web UI
🛡️
SECURITY
Input validation gaps are consistently among the top findings in independent web app assessments. Treat every field, header, and query parameter your app accepts as hostile until proven otherwise — that includes data coming from your own mobile app or internal admin tools.

Secrets management

Hardcoded secrets in source control are one of the most preventable pre-launch failures.

    1. Move all API keys, database credentials, and signing secrets into environment variables or a dedicated secrets manager — never commit them to git
    2. Scan your git history (not just the current commit) for previously committed secrets, and rotate any that were ever exposed
    3. Use different credentials per environment (dev, staging, production); a leaked staging key should never unlock production data
    4. Restrict service-account and API key permissions to the minimum the app actually needs (least privilege), not broad admin scopes for convenience
    5. 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.

    1. Run an automated dependency/vulnerability scan (npm audit, Snyk, GitHub Dependabot, or OWASP Dependency-Check) before every release, not just pre-launch
    2. Pin dependency versions and review changelogs before bumping major versions, especially for auth or crypto libraries
    3. Remove unused packages, dev-only tools, and debug middleware from the production build
    4. 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.

    1. Apply rate limits per IP and per account on login, signup, OTP verification, and password reset
    2. Add stricter limits or CAPTCHAs on endpoints that trigger costly operations (SMS OTP, email sends, PDF generation)
    3. Rate-limit public APIs to prevent scraping and to control infrastructure cost from automated abuse
    4. 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.

ControlWhat to implement before launchWhy it matters
Application loggingLog auth events, admin actions, and errors — never log passwords, tokens, or full card/PII dataEnables incident investigation without creating a new data leak
Centralized monitoringAggregate logs and set alerts for repeated failed logins, privilege changes, and anomalous trafficTurns silent compromise into a detected incident
Uptime and error monitoringConfigure alerting for 5xx spikes, downtime, and unusual latencyConfirms the app is actually reachable and behaving post-launch
Automated backupsSchedule database and file-storage backups with a tested restore processA backup you have never restored is not a backup
Backup encryption and access controlEncrypt backups at rest and restrict who can access or restore themBackups are a high-value target if left unprotected
Incident response contactDocument who gets paged when an alert firesPrevents a 2 AM alert from going unanswered
💡
TIP
Test your backup restore process before launch, not during your first real incident. A backup job that "completes successfully" but produces an unrestorable file is a false sense of safety.

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.

    1. Collect only the personal data your app actually needs (data minimisation), and avoid over-collecting "just in case" fields at signup
    2. Obtain clear, specific consent before collecting personal data, and provide an accessible way for users to withdraw it
    3. Apply "reasonable security safeguards" — encryption in transit and at rest, access controls, and breach-detection capability — to any system holding personal data
    4. 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
    5. 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
See this DPDP compliance guidance for a deeper walkthrough of these obligations before you scale user data collection.
6 hoursWindow to report a cyber incident to CERT-In under its 2022 Cybersecurity Directions
180 daysMinimum log retention mandated for ICT systems under the same CERT-In directions

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.

    1. 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
    2. Test authenticated flows specifically — most serious findings live behind login, not on the public marketing pages
    3. Re-test after fixes, since a patched finding that reintroduces the same bug in a follow-up commit is common under launch-week pressure
    4. 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
    5. Treat VAPT as a recurring practice tied to every major release, not a one-time pre-launch gate
A free VAPT scan is a practical way to get an initial read on your app's external attack surface before committing to a full manual assessment.
pie title Pre Launch Security Control Coverage "Auth and Session" : 20 "TLS and Headers" : 15 "Input Validation" : 20 "Secrets and Dependencies" : 15 "Monitoring and Backups" : 15 "DPDP and VAPT" : 15
🎯Key Takeaway
No single control on this checklist prevents a breach on its own — the value is in running all ten together, verified by an independent VAPT, before your v1 app is reachable by real users and real attackers on the same day.

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

Frequently Asked Questions

What's the single most important item on a pre-launch web app security checklist?
There isn't one silver bullet — authentication hardening, TLS/headers, input validation, and a pre-launch VAPT all close different attack paths. If forced to prioritize, fix authentication and session handling first since it's the most common entry point, but plan to complete the full checklist before launch, not just the top item.
Do small startups in India actually need to worry about DPDP Act compliance at launch?
Yes. The DPDP Act's core obligations, like data minimisation, consent, and reasonable security safeguards, apply based on whether you process Indian users' personal data, not company size or funding stage. Building these in at launch is far cheaper than retrofitting them after a data-subject complaint or breach.
How is a pre-launch VAPT different from routine dependency scanning?
Dependency scanning checks your third-party libraries for known, published vulnerabilities and can run automatically in CI. A VAPT is a broader, often manual assessment of your actual application logic, authentication flows, and access controls, looking for issues no scanner catches, like broken object-level authorization or business-logic flaws.
What security headers should every Indian web app set before launch?
At minimum: Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), X-Content-Type-Options, X-Frame-Options or CSP frame-ancestors, and Referrer-Policy. These are inexpensive to configure and directly block common attacks like clickjacking, protocol downgrade, and several classes of XSS.
Should rate limiting be applied to every API endpoint or just login?
Apply it broadly, with stricter limits on sensitive endpoints. Login, OTP, and password-reset flows need the tightest limits since they're brute-force targets, but any public API can be abused for scraping or cost-driven denial of service if left unlimited.
How often should VAPT be repeated after the initial pre-launch test?
Treat it as tied to your release cycle, not a calendar date. Any major feature release, especially one touching authentication, payments, or new data collection, warrants a follow-up assessment rather than waiting for an annual audit cycle.
BR

Bachao.AI Research Team

Cybersecurity Research

AI-powered security research and threat intelligence from the Bachao.AI team. Covering the latest vulnerabilities, CVEs, and cybersecurity developments affecting Indian businesses.

Get cybersecurity insights for Indian SMBs

Weekly vulnerability alerts, DPDP compliance tips, and security guides. No spam — unsubscribe anytime.

We respect your privacy. Your email is never shared.

Know your vulnerabilities before attackers do

Free automated scan — risk score in under 2 hours. No credit card required.

Get Your Free VAPT Scan
Find your vulnerabilitiesStart free scan →