WebView: Unterschied zwischen den Versionen

Aus Android Wiki
K (Erwähnung Browser-Apps mit eigener Rendering-Engine)
K (Hybride Apps)
Zeile 8: Zeile 8:
Da nicht nur einige Browser-Apps sondern auch viele andere Apps die ''WebView''-Komponente z.B. zur Einblendung von Werbe-Bannern verwenden, sind Sicherheitslücken in dieser Komponente besonders problematisch.<ref>{{Cite web | url = https://heise.de/-2552659 | title = Sicher surfen trotz Android 4.3 | date = 2015-02-17 | accessdate = 2017-05-09 | publisher = heise.de | author = Jörg Wirtgen | quote = Problematisch daran ist, dass erstens nicht nur Browser diese Komponente nutzen, sondern auch viele Apps. [...] Die meisten Apps, die Werbebanner einblenden, dürften dafür ebenfalls WebView nutzen.}}</ref><ref>{{Cite web | url = https://heise.de/-2517130 | title = Millionen Android-Geräte mit Sicherheitslücken auf Lebenszeit | date = 2015-01-13 | accessdate = 2017-05-09 | publisher = heise.de | author = Dennis Schirrmacher | quote = Auf alle Webview-basierten Apps zu verzichten ist wiederum praktisch unmöglich, denn die Komponente wird in der Regel auch für Werbeeinblendungen genutzt ...}}</ref><ref>{{Cite web | url = https://heise.de/-1969282 | title = Android-Geräte anfällig für Angriffe über Werbung  | date = 2013-09-28 | accessdate = 2017-05-09 | publisher = heise.de | author = Jo Bager | quote = Viele Anwendungen sichern aber den Kanal zwischen der WebView-Komponente und dem Ad-Server nicht richtig ab, von dem die Werbung kommt. Das kann sie zum Ziel für Man-in-the-middle-Attacken machen, etwa wenn sich der Angreifer im selben W-LAN-Netzwerk befindet. Der Angreifer kann auf diese Weise beliebigen Code auf dem Gerät des Opfer zur Ausführung bringen.}}</ref>
Da nicht nur einige Browser-Apps sondern auch viele andere Apps die ''WebView''-Komponente z.B. zur Einblendung von Werbe-Bannern verwenden, sind Sicherheitslücken in dieser Komponente besonders problematisch.<ref>{{Cite web | url = https://heise.de/-2552659 | title = Sicher surfen trotz Android 4.3 | date = 2015-02-17 | accessdate = 2017-05-09 | publisher = heise.de | author = Jörg Wirtgen | quote = Problematisch daran ist, dass erstens nicht nur Browser diese Komponente nutzen, sondern auch viele Apps. [...] Die meisten Apps, die Werbebanner einblenden, dürften dafür ebenfalls WebView nutzen.}}</ref><ref>{{Cite web | url = https://heise.de/-2517130 | title = Millionen Android-Geräte mit Sicherheitslücken auf Lebenszeit | date = 2015-01-13 | accessdate = 2017-05-09 | publisher = heise.de | author = Dennis Schirrmacher | quote = Auf alle Webview-basierten Apps zu verzichten ist wiederum praktisch unmöglich, denn die Komponente wird in der Regel auch für Werbeeinblendungen genutzt ...}}</ref><ref>{{Cite web | url = https://heise.de/-1969282 | title = Android-Geräte anfällig für Angriffe über Werbung  | date = 2013-09-28 | accessdate = 2017-05-09 | publisher = heise.de | author = Jo Bager | quote = Viele Anwendungen sichern aber den Kanal zwischen der WebView-Komponente und dem Ad-Server nicht richtig ab, von dem die Werbung kommt. Das kann sie zum Ziel für Man-in-the-middle-Attacken machen, etwa wenn sich der Angreifer im selben W-LAN-Netzwerk befindet. Der Angreifer kann auf diese Weise beliebigen Code auf dem Gerät des Opfer zur Ausführung bringen.}}</ref>
Seit Android {{Android|5}} kann diese Komponente als {{PlayStore|com.google.android.webview|Android System WebView}} auch ohne ein [[Firmware]]-Update wie eine "normale" App über [[Google_Play|Google Play]] aktualisiert werden.<ref name="androidpolice_webview_lollipop" /><ref>{{Cite web | url = https://infinum.co/the-capsized-eight/the-updateable-webview-on-android-5-lollipop-what-is-it-and-why-should-you-care | title = The Updatable WebView on Android 5.0 Lollipop - what is it and why should you care? | date = 2014-10-21 | accessdate = 2017-05-09 | publisher = Infinum Inc. | author = Ivan Lučin | language = en }}</ref>
Seit Android {{Android|5}} kann diese Komponente als {{PlayStore|com.google.android.webview|Android System WebView}} auch ohne ein [[Firmware]]-Update wie eine "normale" App über [[Google_Play|Google Play]] aktualisiert werden.<ref name="androidpolice_webview_lollipop" /><ref>{{Cite web | url = https://infinum.co/the-capsized-eight/the-updateable-webview-on-android-5-lollipop-what-is-it-and-why-should-you-care | title = The Updatable WebView on Android 5.0 Lollipop - what is it and why should you care? | date = 2014-10-21 | accessdate = 2017-05-09 | publisher = Infinum Inc. | author = Ivan Lučin | language = en }}</ref>
Es gibt auch den Ansatz [[App|Apps]] für Android (und andere mobile Betriebssysteme) als sog. ''hybride Apps'' zu realisieren, wobei die eigentliche App mit Web-Technologien (HTML, JavaScript, CSS) implementiert wird. Dieser Web-Content wird dann in eine Container-App gepackt, die die eigentliche App mit dem ''WebView''-Element darstellt. <ref>{{Cite web | url = https://www.smashingmagazine.com/2014/10/providing-a-native-experience-with-web-technologies/ | title = Hybrid Mobile Apps: Providing A Native Experience With Web Technologies | date = 2014-10-21 | accessdate = 2017-05-09 | publisher = Smashing Magazine | author = Patrick Rudolph | language = en}}</ref><ref>{{Cite web | url = https://hosting.1und1.de/digitalguide/websites/web-entwicklung/hybrid-app-das-beste-aus-web-und-native-app/ | title = Hybrid-App: Was unterscheidet sie von anderen App-Formaten? | date = 2016-06-02 | accessdate = 2017-05-09 | publisher = 1&1| }}</ref>
Ein bekanntes Framework für die Erstellung solcher hybrider Apps ist ''Apache Cordova''.<ref>{{Cite web | url = https://cordova.apache.org | title = Apache Cordova (Homepage) | accessdate = 2017-05-09 | publisher = apache.org | language = en | quote = Cordova wraps your HTML/JavaScript app into a native container which can access the device functions of several platforms.}}</ref>





Version vom 9. Mai 2017, 12:33 Uhr

WebView ist eine Komponente von Android zur Darstellung von Web-Inhalten, z.B. HTML-Dateien mit JavaScript und CSS.[1][2] Die anzuzeigenden Web-Inhalte können aus dem Internet geladen werden oder in einer App selbst als lokale Ressource enthalten sein. Als Rendering Engine wird von der WebView-Komponente WebKit verwendet.[3]

Mehrere Web-Browser-Apps für Android verwenden zur Darstellung der Web-Inhalte WebView, z.B. Cliqz[4], Lightning[5] oder Jelly (Browser für LineageOS)[5].(Nicht alle Web-Browser-Apps für Android basieren auf der WebView-Komponente, der Firefox Browser Play Store bspw. verwendet seine eigene Rendering-Engine "Gecko".[6])


Da nicht nur einige Browser-Apps sondern auch viele andere Apps die WebView-Komponente z.B. zur Einblendung von Werbe-Bannern verwenden, sind Sicherheitslücken in dieser Komponente besonders problematisch.[7][8][9] Seit Android Lollipop "Lollipop" kann diese Komponente als Android System WebView Play Store auch ohne ein Firmware-Update wie eine "normale" App über Google Play aktualisiert werden.[1][10]

Es gibt auch den Ansatz Apps für Android (und andere mobile Betriebssysteme) als sog. hybride Apps zu realisieren, wobei die eigentliche App mit Web-Technologien (HTML, JavaScript, CSS) implementiert wird. Dieser Web-Content wird dann in eine Container-App gepackt, die die eigentliche App mit dem WebView-Element darstellt. [11][12] Ein bekanntes Framework für die Erstellung solcher hybrider Apps ist Apache Cordova.[13]


Bei der Programmierung einer nativen Android-App mit der Programmiersprache Java steht die WebView-Komponente als Klasse android.webkit.WebView zur Verfügung.[3][14]


Einzelnachweise

  1. 1,0 1,1 Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  2. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  3. 3,0 3,1 Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  4. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  5. 5,0 5,1 Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  6. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  7. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  8. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  9. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  10. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  11. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  12. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  13. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  14. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.