2016-05-25 12 views
2

Ok, so war ich mit:Run JavaScript-Code in Android-Browser über eine Absicht

String url ="http://www.example.com"; 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse(url)); 
startActivity(i); 

den Benutzer zu senden eine URL auf seinem Gerät den Browser besuchen dann habe ich mich gefragt, ob es möglich wäre, ein Javascript zu schicken Code über eine Absicht auf dem Geräte-Browser so etwas wie javascript:alert('hello') ausgeführt werden, weil die Eingabe im Browser wird es so laufen lassen, ist es möglich, es über eine Absicht zu tun? Wenn es möglich ist, wäre das nicht eine Art Sicherheitslücke in Android? Jede Dokumentation oder ein Beispiel wäre schön für weitere Recherchen. Dank

ich auch, dass ich Javascript-Code über das setData() übergeben versucht haben, erwähnen, möchte aber es fror nur die Benutzeroberfläche ohne einen Fehler zu geben.

+0

starten: http://stackoverflow.com/a/10481108/5392825 –

+0

@YasirTahir dies ist nicht, was ich versuche zu tun , Ich weiß genau, wie man Javascript in einer Webansicht in meiner Aktivität ausführt, aber die Frage hier adressiert ein anderes Problem. –

+0

Ich schlage vor, dass Sie diese Entwicklerdokumentation bezüglich WebView, JavaScript und Sicherheit lesen: https://developer.android.com/reference/ android/webkit/WebView.html – jaolstad

Antwort

1

weil die Eingabe im Browser ausgeführt wird

Das auf dem Browser abhängen würde. Es gibt viele Webbrowser-Implementierungen für Android. Ich würde nicht davon ausgehen, dass alle Web-Browser auf Android unterstützen das Schema javascript in der Adressleiste, obwohl einige könnten.

also ist es möglich, es über eine Absicht zu tun?

Das hängt vom Browser ab. Es gibt viele Webbrowser-Implementierungen für Android. Im Allgemeinen würde ich nicht erwarten, dass javascript ein unterstütztes Schema sein wird, aber es kann Workarounds für diese Einschränkung geben.

Wenn es möglich ist, wäre das nicht eine Art Sicherheitslücke in Android?

Möglicherweise. Es hängt vom Browser ab und davon, wie er die Intent gehandhabt hat. Es gibt viele Webbrowser-Implementierungen für Android. Es wäre keine Sicherheitslücke in Android, genauso wenig wie Fehler in Windows-Apps Sicherheitslücken in Windows darstellen. Hier

+0

Aber vorausgesetzt, der Browser unterstützt das Ausführen des Javascript-Schemas im Browser (weil der Android-Aktien-Webbrowser tut) wäre nicht ein Mangel an Sicherheit, um Benutzer übergeben Javascript-Code über eine Absicht, da Absichten von Android behandelt werden? Und vor allem kann es überhaupt gemacht werden? –

+0

@Aromelaswar: "weil der androide stock webbrowser tut" - es gibt keinen einzigen "android stock webbrowser". "Es wäre kein Sicherheitsmangel, wenn Benutzer JavaScript-Code über eine Absicht weitergeben, da Absichten von Android gehandhabt werden?" -- nicht unbedingt. Das Anzeigen eines Alarmdialogs mit der Zeichenfolge "Hallo" auf einer leeren Webseite ist kein "Mangel an Sicherheit". "Und vor allem kann es überhaupt gemacht werden?" - Das hängt vom Browser ab. Es gibt viele Webbrowser-Implementierungen für Android. Ich habe das für keinen bestimmten Browser versucht. – CommonsWare

+0

Vielen Dank für Ihre Antworten, aber was ich gerne wissen würde, ist davon ausgegangen, dass der Browser unterstützt es tut android lässt Sie es tun? Wie ich in meiner Frage gesagt habe, habe ich versucht, Javascript mit der intent setData() -Methode zu senden und es hat die App eingefroren, ohne irgendeinen Fehler aus irgendeinem Grund zu geben. Und schließlich war die Warnung hallo nur ein Beispiel, da Sie wahrscheinlich wissen, dass android Ihnen den Zugriff auf Cookies aus den Webansichten anderer Apps nicht erlaubt, aber nicht in der Lage ist, Code auszuführen, der diese Cookies verwenden könnte, um diese Einschränkung zu umgehen? –