Hybrid App Security

WebView Security Checklist für Hybrid Apps

Eine WebView verbindet fremd veränderbaren Inhalt mit nativen Fähigkeiten. Deshalb benötigen Origins, Nachrichten und Navigation explizite Vertrauensgrenzen.

LaunchLint Academy

18 Minuten LesezeitRedaktion und Quellenprüfung: Rene DresselRedaktionelle Richtlinie
Hybrid-App schützt WebView, erlaubte Domains und Native Bridge mit klaren Sicherheitsgrenzen
Eine WebView ist eine Vertrauensgrenze zwischen Webinhalt und nativen Fähigkeiten. Sobald fremde URLs, JavaScript-Bridges, Datei-Zugriff oder sensible Sitzungen beteiligt sind, muss jede Navigation wie nicht vertrauenswürdige Eingabe behandelt werden.
TL;DR

Die kurze Antwort

Eine WebView ist eine Vertrauensgrenze zwischen Webinhalt und nativen Fähigkeiten. Sobald fremde URLs, JavaScript-Bridges, Datei-Zugriff oder sensible Sitzungen beteiligt sind, muss jede Navigation wie nicht vertrauenswürdige Eingabe behandelt werden.

  • Begrenze Origins und Pfade, minimiere Bridge-Funktionen, trenne externe Links und teste Auth, Downloads, Dateiauswahl und Fehlerzustände im signierten Release.

Nachweise für die Release-Freigabe

Prüfe webview-sicherheit in hybrid-apps nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Trenne bei WebView-Sicherheit in Hybrid-Apps drei Nachweise: statisch erkennbare Projektkonfiguration, Verhalten auf einem sauberen Gerät und externe Einstellungen in Apple Developer, App Store Connect oder Play Console. Erst wenn diese Ebenen denselben Release-Kandidaten beschreiben, ist die Prüfung belastbar. Dokumentiere Abweichungen mit Owner und Stop-Kriterium, statt sie als vermeintlichen Standardwert zu akzeptieren.

Nachweise für die Release-Freigabe

  • Produktionswert für webview-einsatz kartieren eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

1. WebView-Einsatz kartieren

Erfasse jede WebView, ihre Start-URL, erlaubte Navigation, Daten, Cookies, Downloads und nativen Fähigkeiten.

Prüfe webview-einsatz kartieren nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für webview-einsatz kartieren eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

2. Vertrauenswürdige Origins definieren

Prüfe Schema, Host und Port vollständig. Teilstring- oder Suffixprüfungen können bösartige Domains fälschlich akzeptieren.

Prüfe vertrauenswürdige origins definieren nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für vertrauenswürdige origins definieren eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

3. JavaScript-Bridges minimieren

Expose nur notwendige Methoden, validiere jede Nachricht und lade keine fremden Frames in eine WebView mit privilegierter Bridge.

Prüfe javascript-bridges minimieren nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für javascript-bridges minimieren eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

4. Datei- und Content-Zugriff begrenzen

Deaktiviere unnötige file://-, Content- und Universal-File-URL-Zugriffe. Bevorzuge sichere Asset-Loader.

Prüfe datei- und content-zugriff begrenzen nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für datei- und content-zugriff begrenzen eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

5. Navigation und neue Fenster kontrollieren

Behandle Redirects, target=_blank, Downloads, Intent-URLs und externe Browserübergaben ausdrücklich.

Prüfe navigation und neue fenster kontrollieren nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für navigation und neue fenster kontrollieren eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

6. Auth und Sitzungen schützen

Prüfe Cookies, Token, OAuth-Callbacks, Logout und Screenshots. Web- und Native-Sitzung dürfen keine unklaren Übergänge erzeugen.

Prüfe auth und sitzungen schützen nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für auth und sitzungen schützen eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

7. Capacitor und Plugins prüfen

Inventarisiere erlaubte Navigationsziele, Server-Konfiguration und Plugins. Eine komfortable Bridge erweitert die Angriffsfläche.

Prüfe capacitor und plugins prüfen nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für capacitor und plugins prüfen eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

8. Angriffspfade praktisch testen

Teste manipulierte URLs, fremde iframes, Offline-Inhalte, Dateiauswahl, Zurück-Navigation und kompromittierte Inhalte auf echten Geräten.

Prüfe angriffspfade praktisch testen nicht als isolierten Schalter, sondern im Zusammenhang mit WebView-Sicherheit in Hybrid-Apps, dem tatsächlich signierten Produktionsartefakt und den Angaben in der Store-Konsole. Halte fest, welche Datei die Einstellung erzeugt, ob ein Framework oder Plugin sie beim Build verändert und wie du den aufgelösten Wert kontrolliert hast. Ein plausibler Eintrag im Quellprojekt beweist noch nicht, dass derselbe Wert im hochgeladenen Binary angekommen ist.

Nachweise für die Release-Freigabe

  • Produktionswert für angriffspfade praktisch testen eindeutig benannt
  • Verantwortliche Projektdatei oder Store-Einstellung verlinkt
  • Aufgelöste native Konfiguration kontrolliert
  • Signiertes Artefakt auf sauberem Gerät geprüft
  • iOS- und Android-Unterschiede dokumentiert
  • Offene Abweichung mit Owner und Stop-Kriterium versehen

Häufige Fragen

Ist Capacitor automatisch sicher?

Nein. Es bietet eine Architektur, aber Sicherheit hängt von Origins, Plugins, Navigation, Webinhalt und nativer Konfiguration ab.

Soll JavaScript deaktiviert werden?

Wenn es nicht benötigt wird, ja. Hybrid-Apps benötigen es häufig; dann müssen Inhalte und Bridges besonders eng kontrolliert werden.

Reicht eine Domain-Allowlist?

Nein. Pfad, Schema, Redirects, Nachrichten, Autorisierung und die geladene Ressource müssen ebenfalls geprüft werden.

Was kann eine statische Prüfung nicht beweisen?

Sie kann Konfiguration und riskante APIs finden, aber nicht jeden dynamischen Redirect, kompromittierten Server oder Laufzeitinhalt beobachten.

Offizielle Primärquellen

Dieser Beitrag stützt sich auf die folgenden offiziellen Primärquellen. Store-Regeln können sich ändern; prüfe vor einer Einreichung immer die aktuelle Fassung.