Skip to content

Mobile App Security Checklist for Businesses

Mobile Apps6 min read

A practical mobile app security checklist: secure storage, authentication, API safety, transport encryption, permissions, dependencies and testing.

In this article
  1. Start from the right assumption
  2. 1. Authentication and sessions
  3. 2. Data stored on the device
  4. 3. Data in transit and the API
  5. 4. Keep secrets out of the app
  6. 5. Permissions and privacy
  7. 6. Logging and error handling
  8. 7. Code and dependencies
  9. 8. Test before you ship
  10. A quick pre-release checklist
  11. Putting the checklist into practice
  12. Common mistakes
  13. Getting help

A mobile app security checklist comes down to a handful of principles: keep secrets and business rules on the server, authenticate users properly and check permissions on every request, encrypt data in transit and sensitive data at rest on the device, collect and store as little personal data as you can, keep third-party code up to date, and test the finished app before release. This guide expands each of those into items you can tick off with your developers. The most widely used reference is the OWASP Mobile Application Security project (MASVS and the Mobile Top 10), which is worth reading alongside this list.

Start from the right assumption

A mobile app runs on a device you do not control. Phones get lost, rooted or jailbroken, and anyone can download your app and examine it. So design as if the app were public: anything inside it can eventually be read. This single assumption prevents most serious mistakes.

1. Authentication and sessions

  • Use a well-established authentication approach, such as OAuth 2.0 and OpenID Connect through a reputable identity provider, rather than inventing your own.
  • Offer multi-factor authentication for sensitive accounts.
  • Use short-lived access tokens, with refresh tokens stored in the platform's secure storage.
  • Support server-side session revocation, so a lost phone can be cut off.
  • If you offer biometric unlock, treat it as a convenience on top of a proper login, using the platform's own biometric APIs.
  • Rate-limit login attempts on the server.

2. Data stored on the device

  • Store as little as possible. Data never stored cannot be stolen.
  • Use the platform's secure storage for tokens and keys: the Keychain on iOS and the Android Keystore on Android.
  • Never keep passwords, API secrets or private keys in plain text, in preferences files or in the app bundle.
  • Encrypt local databases that hold sensitive data.
  • Exclude sensitive data from device backups where appropriate.
  • Clear cached data and tokens on logout.

3. Data in transit and the API

  • Use HTTPS (TLS) for every connection. Do not allow fallback to plain HTTP.
  • Validate certificates properly. Never disable certificate checks "temporarily" for testing and ship it.
  • For high-risk apps, consider certificate pinning, but plan how you will rotate certificates so you do not lock users out.
  • On the server, check authorisation on every request: does this user have the right to this specific record? Hiding a button in the app protects nothing.
  • Validate and sanitise all input on the server.
  • Return only the fields the app needs, not whole database records.

4. Keep secrets out of the app

Hard-coded API keys, database credentials and signing secrets in an app bundle are among the most common findings in security reviews. If the app needs to call a third-party service that requires a secret, route the call through your own server, which holds the secret. If a key must be in the app, use one that is restricted by the provider to your app and to the minimum permissions.

5. Permissions and privacy

  • Request only the permissions the app truly needs, and ask at the moment they are needed with a clear explanation.
  • Collect the minimum personal data required. GDPR's data minimisation principle points the same way. For guidance on your duties in Ireland, the Data Protection Commission is the official source. This is general information, not legal advice.
  • Keep an accurate record of what data you collect and why, because both app stores ask you to declare it.
  • Provide a way for users to delete their account and data.
  • Review third-party SDKs, such as analytics and advertising code, for what data they collect.

6. Logging and error handling

  • Do not log passwords, tokens or personal data, in the app or on the server.
  • Show users plain error messages; keep technical detail in server logs.
  • Disable verbose debug logging in release builds.
  • Monitor for crashes and unusual activity after release.

7. Code and dependencies

  • Keep every library and framework up to date, and subscribe to security advisories for the ones you use.
  • Audit what each third-party package does before adding it. Fewer dependencies mean a smaller attack surface.
  • Use code obfuscation or shrinking as a speed bump, but not as a security measure on its own.
  • Protect your build and signing process: restrict who can publish, and store signing keys securely.

8. Test before you ship

  1. Run a self-review against the OWASP MASVS requirements that match your risk level.
  2. Test with a rooted or jailbroken device and a proxy tool to see what the app sends and stores.
  3. Test the API directly: change IDs in requests and confirm you cannot read another user's data.
  4. For sensitive apps, commission an independent penetration test and fix its findings before launch.
  5. Repeat after major changes, not just once.

A quick pre-release checklist

AreaQuestion to answer
SecretsIs there any key, password or credential inside the app package?
StorageAre tokens in Keychain or Keystore, and is sensitive local data encrypted?
NetworkIs everything over TLS with certificate validation on?
ServerDoes every endpoint check who is asking and what they may see?
PrivacyDo we collect only what we need, and have we declared it accurately?
LogsAre sensitive values absent from logs in release builds?
UpdatesDo we have a process to patch a vulnerable dependency quickly?

Putting the checklist into practice

A checklist only helps if someone owns it. Assign a named person on your side, often a product owner or technical lead, to confirm that each item has been addressed before every release. Keep the list in the project's documentation and update it as the app changes. A short, current list used every release is worth more than a long document nobody opens.

Match effort to risk

Not every app needs the same depth. A simple information app that stores nothing personal has a smaller risk surface than an app that handles payments, health information or confidential business records. Be honest about what an attacker could gain. The OWASP MASVS defines verification levels so you can choose a depth that fits, and it is a useful way to make that conversation concrete with your developers.

Plan for the day something goes wrong

  • Know who decides whether an incident is serious, and who contacts users and regulators if personal data is affected.
  • Be able to force an update, or at least disable old app versions on the server, if a serious flaw is found.
  • Be able to revoke tokens and sessions centrally.
  • Keep logs on the server long enough to investigate, without storing sensitive content in them.

Under GDPR, certain personal data breaches must be reported to the supervisory authority within a set period. In Ireland, the Data Protection Commission publishes guidance on this. Read the official guidance for your situation; this article is general information and not legal advice.

Security is also a people problem

Protect the accounts that can publish the app and access the servers with multi-factor authentication, give people only the access they need, and remove access promptly when someone leaves. Many real breaches start with a stolen or shared credential, not a clever attack on the app itself.

Common mistakes

  • Relying on the app for security decisions. Client-side checks can be bypassed; enforce rules on the server.
  • Leaving test settings in release builds. Disabled certificate checks, debug endpoints and verbose logs often ship by accident.
  • Storing tokens in plain preferences. Use the secure storage the platform provides.
  • Over-collecting data. Every field you store is a field you must protect and declare.
  • Never updating dependencies. Known vulnerabilities in old libraries are easy for attackers to find.
  • Treating security as a final-week task. Planning it early is cheaper; see how to plan a mobile app.

Getting help

Security is easier when it is part of the design rather than a review at the end. Soch Tech's mobile app development work is built around secure architecture on both Android and iOS, and our cybersecurity solutions cover encryption, authentication, audits and threat monitoring if you would like an existing app reviewed.

Share this article

General educational information, not legal or professional advice for your specific situation.

Frequently asked questions

What is the most important mobile app security rule?

Never trust the device. Anything stored in the app, including keys, API secrets and business rules, can be inspected by a determined person. Keep secrets and decisions on the server and treat the app as an untrusted client.

Is HTTPS enough to secure a mobile app?

It is essential but not sufficient. HTTPS protects data in transit. You also need server-side authorisation, secure storage on the device, careful logging, and dependency hygiene.

Which standard should I use as a reference?

The OWASP Mobile Application Security project, including the Mobile Application Security Verification Standard (MASVS) and the Mobile Top 10, is a widely used reference. Check owasp.org for the current versions.

Do I need a penetration test?

For apps handling payments, health data, financial records or other sensitive information, an independent security test before launch is strongly advisable. For lower-risk apps, a structured self-review against a checklist is a good minimum.

Keep reading

Let’s build it

Looking for the best business consulting?

Tell us what you want to automate, build or secure. We reply with a clear next step.