Engineering

Ionic and Cordova app security

How to evaluate Ionic and Cordova app security layer by layer, and how Otukan protects the web bundle, plugin bridge and native shell on Android and iOS.

  • Ionic / Cordova
  • Android
  • iOS
  • Four layers, one app

    A hybrid app is a web bundle, a WebView, a plugin bridge and a native shell. Otukan evaluates and protects each of them on Android and on iOS.

  • The bridge is the boundary

    Whoever controls JavaScript in the WebView can call your native plugins. Otukan detects injected scripts and hooked runtimes around that bridge and applies your response.

  • Web updates accounted for

    If you ship web content outside store releases, Otukan plans integrity coverage around the update path you already run.

What Otukan adds to a hybrid app

Controls aimed at the places where hybrid apps are easiest to read, change and drive.

  • Web bundle protection

    Encrypts and integrity-checks the JavaScript, HTML and CSS packaged with the app, so plain-text logic is no longer one unzip away.

  • Script injection detection

    Recognises code injected into the WebView or the native process that tries to drive plugin calls on the user's behalf.

  • WebView inspection detection

    Flags remote inspection of the WebView and attached native debuggers in release builds, and applies the response you set.

  • Repackaged copy detection

    Identifies copies rebuilt with altered web content or a different signing identity, on Android and on iOS separately.

  • Root and jailbreak signals

    Flags rooted Android devices and jailbroken iPhones with separate platform signals, so sensitive plugin calls follow the policy you set.

  • App attestation

    Gives your backend evidence that a request comes from the genuine hybrid app, so a key copied out of the web bundle is far less useful.

How it works

  1. Profile the stack

    Tell us your native runtime, web framework, plugin list and update path. No source or binaries are needed.

  2. Score each layer

    We map web, bridge, native and asset layers to controls and to your most sensitive screens.

  3. Protect the release

    Protection fits your existing web build, native build and release pipeline.

  4. Keep your signatures

    Your Android upload key and Apple identities never leave your team.

  5. Test the real journey

    Start-up, plugin calls, crash reports and sign-in are verified on physical devices per platform.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Evaluate an Ionic or Cordova app as four layers, not one: the web bundle that holds most of your logic, the WebView that runs it, the bridge that lets JavaScript call native plugins, and the native shell that is signed and shipped to the stores. Each layer is exposed differently on Android and on iOS, and each needs its own control. Otukan protects all four for Android and iOS releases, whether your Ionic app runs on Cordova or on Capacitor. This page sets out what to check at each layer, how Otukan fits your release process, and how to validate a protected build before it ships.

Component scope

Web bundle

Your compiled TypeScript or JavaScript, HTML templates and CSS are packaged as ordinary files: under www for Cordova and public for Capacitor, stored in the APK or app bundle on Android and inside the app bundle on iOS. Anyone who downloads the app can extract them. Otukan encrypts and integrity-checks this bundle, so business rules, endpoints and feature flags stop being plain text, and a modified file is detected.

WebView

Android apps render in the Android System WebView, which updates through the store independently of your app. iOS apps render in WKWebView, which updates with the operating system. Both allow remote inspection when it is enabled. Otukan flags inspection and native debuggers in release builds and applies your response.

Plugin bridge

Cordova plugins and Capacitor plugins expose native functions, such as biometrics, secure storage, file access or payments, to JavaScript. That makes the bridge the real security boundary: script injected into the page, or a hooked process, can call the same native functions your code calls. Otukan detects injected code and hooking frameworks around the bridge, and protects the native plugin code you own.

Native shell and embedded SDKs

The shell is a small Android or iOS project plus the plugins and SDKs you add. Otukan’s integrity checks cover it, detect repackaged copies, and tune runtime checks so that third-party SDKs which inspect the process do not trip your policy.

LayerWhat a reviewer can see in an unprotected releaseWhat Otukan adds
Web bundleReadable scripts, templates, endpointsEncryption and integrity checks
WebViewRemote inspection when enabledInspection and debugger detection
Plugin bridgeNative functions callable from any scriptInjection and hooking detection
Native shellRe-signable packageIntegrity checks and repackaging detection

Release fit

Compiler and runtime

Your web framework and bundler produce the web output; Cordova or Capacitor then builds the native projects. Otukan protection fits into that same pipeline, and your Android upload key and Apple signing identities stay with your team. The native runtime, plugin list and web framework are the three facts we confirm first.

Update mechanisms

Some teams publish web content updates outside store releases. That changes the web bundle on the device without a new binary, so integrity checks must recognise updates you publish and reject anything else. Otukan plans coverage around your update path. Store rules also limit what such updates may change, which is a product decision your team keeps. If your web app ships to the stores in a native wrapper instead, see progressive web app protection.

For the wider integration model, see mobile app security integration.

Validation

Behaviour and third-party dependencies

Run install, update, sign-in and your most sensitive plugin call on physical Android and iOS devices, in both a baseline build and a protected build from the same commit. Include every third-party plugin that touches the network, storage or authentication. Repeat the same journey on a rooted Android device and a jailbroken iPhone in an authorised lab and record the signal your backend receives.

Symbols and start-up

Keep source maps out of production packages and store them with your build records. Confirm that native crash reports from protected builds still symbolicate on both platforms. Measure cold start and first render, because a hybrid app does work in the native shell and the WebView before anything appears. Hybrid measurement methods are covered on mobile app protection performance.

For the full protection model, return to mobile app security. If your hybrid app is live, a free App Exposure Check shows what its public build already reveals.

Common questions

  • Is minified JavaScript protected?

    No. Minification shortens names and removes whitespace to reduce download size. Formatting tools restore readable structure in seconds, and string literals such as endpoints stay intact. Treat minification as a size optimisation. Otukan adds encryption and integrity checks to the packaged web bundle and runtime detection around the WebView, which is what makes the logic costly to study or change.

  • Do Ionic apps on Capacitor need a different approach from Cordova?

    The layers are the same: a web bundle, a WebView, a bridge to native plugins and a native shell. The folder names, bridge implementation and plugin model differ, so the protection plan names them explicitly. Otukan protects Ionic apps on either runtime, and tells you during planning which checks apply to your combination on each platform.

  • Should secrets live in the web bundle?

    Keep long-lived secrets on your server. Anything the app must hold, such as an API key that identifies the app, belongs in native secure storage rather than in JavaScript or a configuration file. Otukan protects what remains in the bundle and gives your backend app attestation, so a key copied out of a device is far less useful on its own.

Protect all four layers of your hybrid app

Tell us whether your app runs on Cordova or Capacitor, the web framework you build with, your native plugins and whether you ship web updates outside the stores. We never ask for your web bundle, binaries, signing identities or production credentials.

Or request a technical demo