Skip to content
Web Development11 min read

How to Build a Secure Customer-Facing Web Application: A Checklist for Australian Businesses

A build-time security checklist for Australian customer-facing web apps: threat modelling, access control, OWASP Top 10:2025, secrets, logging and releases.

01

What does it take to build a secure customer-facing web application?

A secure customer-facing web application is designed with its threats in mind, enforces authentication and authorisation on every request, treats all input as untrusted, keeps secrets and dependencies under control, collects and keeps only the data it needs, logs what matters, and ships through a tested release process, then stays maintained. In Australia, it should also support your privacy obligations and data breach response. No application is completely secure; the aim is to reduce risk and recover well.

This checklist is for business owners and product managers commissioning a custom application, customer portal, booking system, marketplace, SaaS product or any web app that holds customer accounts and data, and for the developers who build them. It complements website security for Australian small businesses, which covers operating a site and mapping controls to the Essential Eight.

This article is not a security certification or a substitute for a professional security assessment. It is a practical baseline to discuss with your developers and testers.

02

Key takeaways

  • Threat model before you build: what you protect, from whom, and how it could fail.
  • Broken access control tops the OWASP Top 10:2025. Check authorisation on the server for every request and every object.
  • Use proven identity services and MFA; protect account recovery as strongly as sign-in.
  • Validate input and encode output; use parameterised queries and framework protections.
  • Keep secrets out of code, and manage dependencies as a supply chain.
  • Collect less data, encrypt it in transit and at rest, and delete it when no longer needed.
  • Log security events, monitor them and rehearse incident response, including NDB assessment.
  • Agree security requirements with your developers, for example using OWASP ASVS levels.
03

Start with a threat model

A threat model is a structured conversation about what could go wrong. It does not need special tools. For each feature, ask four questions: what are we building, what can go wrong, what will we do about it, and did we do a good job?

  • Assets: customer accounts, personal and payment data, documents, admin functions, API keys.
  • Actors: customers, staff, administrators, partners, automated bots, attackers.
  • Entry points: sign-in, sign-up, password reset, forms, file uploads, APIs, webhooks, admin panel.
  • Trust boundaries: browser to server, server to database, your system to third parties.
  • Abuse cases: account takeover, viewing another customer's data, payment fraud, scraping, denial of service.
  • Controls and owners: how each risk is reduced, and who is responsible.

Pro tip

Our recommendation: write abuse cases next to user stories. 'As a customer I can view my invoices' sits beside 'As an attacker I change the invoice ID to view someone else's'. Each abuse case becomes a test.

04

The risks to design against: OWASP Top 10:2025

The OWASP Top 10 is a widely used awareness list of the most critical web application security risks. The 2025 edition (OWASP) lists:

#RiskWhat it means in practice
A01Broken Access ControlUsers reach data or functions they should not
A02Security MisconfigurationUnsafe defaults, open storage, verbose errors, unneeded features
A03Software Supply Chain FailuresCompromised or vulnerable dependencies, build tools or distribution
A04Cryptographic FailuresWeak or missing encryption of sensitive data
A05InjectionUntrusted input interpreted as code or queries
A06Insecure DesignMissing controls that should have been designed in
A07Authentication FailuresWeak sign-in, session or recovery handling
A08Software or Data Integrity FailuresUnverified updates, data or serialised objects
A09Security Logging & Alerting FailuresAttacks go unnoticed or cannot be investigated
A10Mishandling of Exceptional ConditionsErrors and edge cases that fail unsafely
05

Authentication: who is this?

  • Use a proven identity provider or framework rather than writing your own password handling.
  • Offer multi-factor authentication, and require it for staff and administrators. Support passkeys where your platform allows.
  • Store passwords only as salted hashes with a modern algorithm, if you store them at all.
  • Rate-limit and monitor sign-in, sign-up and recovery to slow credential stuffing.
  • Make account recovery as strong as sign-in; recovery is a common takeover route.
  • Use secure, HTTP-only cookies with appropriate SameSite settings, and expire sessions sensibly.
  • Notify users of new devices and changes to email, password or payment details.
  • Follow current OAuth guidance when integrating sign-in or APIs, such as the OAuth 2.0 security best current practice (RFC 9700).
  • Keep sign-in accessible: WCAG 2.2's accessible authentication criterion discourages relying on memory or transcription tests without alternatives. See website accessibility in Australia.
06

Authorisation: what are they allowed to do?

Most serious application breaches are authorisation failures, not clever hacks. Every request that reads or changes data must check, on the server, that this user may do this action on this specific object.

  • Deny by default; grant the minimum permissions for each role.
  • Check ownership of every object, not just whether the user is signed in.
  • Do not rely on hidden fields, client-side checks or unguessable IDs for security.
  • Model organisations and roles explicitly for business customers.
  • Protect admin functions with separate roles, MFA and, where possible, network restrictions.
  • Write automated tests that attempt to access other users' records and admin functions.
07

Input validation and common vulnerabilities

  • Treat all input as untrusted: forms, URLs, headers, files, webhooks and API responses.
  • Validate on the server against expected types, lengths and formats.
  • Use parameterised queries or an ORM to prevent injection.
  • Encode output for its context and use your framework's templating protections against cross-site scripting.
  • Set a Content Security Policy and other security headers.
  • Handle file uploads safely: check type and size, store outside the web root, scan where appropriate and serve through authorised links.
  • Protect state-changing requests against cross-site request forgery.
  • Restrict server-side requests to approved destinations.
  • Return generic error messages to users and log the details privately.
08

Dependencies and secrets

Supply chain. Modern applications are mostly third-party code. Software Supply Chain Failures is now third in the OWASP Top 10. Keep an inventory of dependencies, pin versions, use lockfiles, scan for known vulnerabilities in the build pipeline, remove unused packages and update on a schedule. Protect the build pipeline and repository with MFA and least privilege. Our guide to AI-generated code security covers extra checks when coding assistants add dependencies.

Secrets. Never put API keys, database passwords or tokens in source code or client-side bundles. The same applies to keys for integrations such as accounting or CRM APIs; see API integration for Australian businesses. Use a secrets manager or your platform's encrypted environment variables, give each secret the minimum permissions, rotate them, and scan repositories for leaked secrets.

09

Encryption and data minimisation

The safest data is data you never collected. For each field, ask whether the application needs it, for how long, and who should see it.

  • Collect only what each feature needs; avoid copying sensitive data into logs, analytics or support tools.
  • Use HTTPS everywhere, with HSTS.
  • Encrypt data at rest, and manage keys separately from data.
  • Use your payment provider's hosted fields so card data never reaches your servers.
  • Set retention periods and delete or de-identify data when they expire.
  • Know where data, backups and logs are hosted and who can access them, including overseas support (see cloud migration for Australian businesses on regions and APP 8). If you are covered by the Privacy Act, APP 8 and APP 11 apply (OAIC).
10

Logging, monitoring and incident response

You cannot respond to what you cannot see. Log security-relevant events (sign-ins, failures, permission changes, admin actions, data exports) without logging passwords, tokens or unnecessary personal data. Send logs somewhere attackers cannot easily alter, set alerts for suspicious patterns and review them.

Write an incident response plan before launch (the website security checklist includes an incident sequence): who decides, how to contain, how to preserve evidence and how to communicate. If your business is covered by the Privacy Act, the Notifiable Data Breaches scheme requires assessing suspected eligible breaches and notifying the OAIC and affected individuals where serious harm is likely; the OAIC received 1,205 notifications in 2025 (OAIC). Businesses with annual turnover over A$3 million must also report ransomware or cyber extortion payments to ASD within 72 hours (Home Affairs).

11

Testing and release practices

PracticeWhenWhat it catches
Security requirements (for example ASVS level)Before buildGaps in what was agreed
Code review with a security checklistEvery changeAuthorisation and validation mistakes
Automated tests for abuse casesEvery buildRegressions in access control
Dependency and secret scanningEvery buildKnown vulnerable packages; leaked keys
Static and dynamic analysisRegularlyCommon vulnerability patterns
Independent penetration testBefore launch and after major changesIssues the team missed
Staged releases with rollbackEvery releaseLimits the impact of mistakes
12

Agree a security standard with your developers

The OWASP Application Security Verification Standard (ASVS) turns these practices into testable requirements. Version 5.0 was released in 2025 and keeps three levels of increasing assurance (OWASP ASVS). Many business applications aim for level 2, with level 3 for the highest-risk systems, though the right level depends on your data and threats. Agreeing a level in the contract gives both sides a shared, checkable definition of 'secure enough'.

ASD's Secure by Design guidance encourages technology manufacturers to build security in from the start and to make secure behaviour the default (ASD). The Essential Eight remains a sound baseline for the systems around your application (ASD).

13

Ongoing maintenance

  • Patch dependencies, frameworks and runtimes on a schedule, and urgently for critical vulnerabilities. If the application already runs on unsupported components, see legacy software modernisation.
  • Review user and admin access quarterly.
  • Re-run threat modelling for significant new features.
  • Rotate secrets and review third-party integrations.
  • Test backups by restoring them.
  • Re-test after major changes, and at least annually for high-risk applications.
14

Hypothetical example: a patient portal

This example is hypothetical. An allied health group commissions a portal where patients see appointments, invoices and exercise plans. As a health service provider, it is covered by the Privacy Act.

The threat model identifies account takeover and access to other patients' records as the top risks. The team uses a managed identity service with MFA and strong recovery, enforces record-level authorisation with automated tests that try to read other patients' data, keeps clinical notes out of notifications and logs, hosts in an Australian region with documented support access, and agrees ASVS level 2 as the requirement. An independent test is scheduled before launch, and the incident plan includes NDB assessment steps.

15

Common mistakes

  • Checking that a user is signed in, but not that they own the record.
  • Building custom authentication instead of using proven services.
  • API keys in front-end code or public repositories.
  • Logging tokens, passwords or full personal records.
  • Treating a pre-launch penetration test as the whole security programme.
  • No incident plan until something goes wrong.
16

For specific application types, see customer portals, booking systems and marketplaces. For mobile, see mobile app security. For generic depth, see building a secure business website and payment security.

17

Sources

Application security: OWASP Top 10:2025; OWASP ASVS; RFC 9700, OAuth 2.0 security best current practice; W3C, what's new in WCAG 2.2.

Australian guidance and obligations: ASD, Secure by Design; ASD, Essential Eight; OAIC, APP 11; OAIC, NDB statistics 2025; Home Affairs, ransomware payment reporting factsheet.

ASVS 5.0 and ASD Secure by Design details were confirmed via secondary summaries. The checklists and example are ours. This is not a security certification, a substitute for a professional assessment, or legal advice.

18

Conclusion

Building a secure customer-facing web application is a set of habits, not a feature: threat model, enforce authorisation everywhere, use proven identity, handle input safely, manage dependencies and secrets, minimise data, log and monitor, test before every release and keep maintaining. Agree a standard such as an ASVS level with your developers, and plan for incidents before launch. For testing and incident readiness after launch, see web application penetration testing and cyber incident response planning; for APIs specifically, API security best practices.

Building an app that holds customer data?

ZSpace Labs is an India-based, remote-first technology studio working with Australian and international businesses on secure web applications and mobile apps. If it would help to review your security requirements before build, we are happy to talk it through.

Start a Project
FAQ

Common questions.

A website security checklist focuses on operating a site safely: updates, hosting, backups, accounts and monitoring. Building a secure web application adds design and development decisions for software that holds customer accounts and data: threat modelling, authorisation logic, input handling, secrets, dependency management and release practices. Most businesses with a customer portal or app need both.

Get in touch

Have a project in mind?

Whether you're building a new digital product, improving an existing website, or looking to automate part of your business — let's talk.