WebView Methode zum auslesen des Inhalts der Website

  • Antworten:15
Johannes
  • Forum-Beiträge: 75

17.03.2012, 16:38:41 via Website

Hy,
ich hab mir ein php Script geschrieben welches auf meinem Server läuft!
Über einen WebView Rufe ich jetzt das Script auf und übergebe im Daten.
Das Script zeigt jetzt per echo - Befehl eine Nummer an

Diese Nummer würde ich gern auslesen, gibt es da einen Befehl bei WebView ich dachte zuerst an .Context oder ähnliches aber das bringt nicht
das richtige!

Hat jemand einen Tipp für mich?

Lg Johannes

Antworten
Dark Blood Studios
  • Forum-Beiträge: 203

17.03.2012, 17:30:50 via Website

Nutzt du das Webview nur um mit dem Handy auf das PHP Script zuzugreifen, oder willst du wirklich die Zahl darin darstellen?
Falls du nur an die Ausgabe des PHP-Scripts willst kannst du die Klassen HttpURLConnection, DataOutputStream und BufferedReader nutzen.

Johannes

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 17:42:21 via Website

Danke, nach dem hab ich gesucht will nur ausgabe!

lg

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 17:52:07 via Website

Eine frage wenn ich ein URL objekt definier mach ich das ja so

URL urltogo = "http:www.example.com/example.php?nummer=" + [String Wert];

Wie kann ich da eben das Problem lösen mit dem anhängen der sich veränderten variable

Antworten
Dark Blood Studios
  • Forum-Beiträge: 203

17.03.2012, 18:25:43 via Website

Ich hoffe ich habe dich richtig verstanden.

1BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
2String number = in.readLine()

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 18:38:59 via Website

1URL url = new URL ("http://www.example.at/Script.php?imei="+ IMEI);
2 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
3 try {
4 OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
5 String wert = out.toString(); // wert bzw. zahl auf der Seite into String
6
7 }
8 finally{
9 urlConnection.disconnect();
10 }

Ich habs jetzt mal so gemacht, jetzt zeichnet er mir mehrere stellen "rot" an und will das ich try und catch ingesamt 3x hinzufüge,
hab ich auch schon probiert dann passiert aber auch nichts, hast du einen Tipp für mich was ich falsch habe.
Das Script liefert nur 1 oder 0 zurück

Lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

17.03.2012, 20:03:03 via Website

Hallo Johannes,

Du überträgst Dinge wie die IMEI unverschlüsselt via HTTP über das Internet?

Nur mal so nebenbei, hast Du schon einmal etwas von Datenschutz gehört?

Das ist grob fahrlässig was Du da mit den Daten der Leute machst.

— geändert am 17.03.2012, 21:06:47

lg Voss

tom_cat

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 20:17:45 via Website

Nein das ist nicht grob Fahrlässig weil ich es mit Caeser Verschlüsseler zuerst verschlüssle und im Script wieder zurück codiere

lg

Antworten
Markus B.
  • Forum-Beiträge: 636

17.03.2012, 20:20:35 via Website

Hi,
Caeser ist schon ziemlich Fahrlässig und verdient die Bezeichnung "Verschlüsselung" nicht ....
Mal ganz am Rande was wollen hier eigentlich 80% der "Entwickler" mit der IMEI ... es empfiehlt sich folgendes zu lesen http://android-developers.blogspot.de/2011/03/identifying-app-installations.html .

Gruß,
Markus

— geändert am 17.03.2012, 20:23:21

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

17.03.2012, 20:23:59 via Website

Ich zitiere nur mal WIkipedia:
Wie alle monoalphabetischen Verschlüsselungsverfahren bietet auch die Verschiebechiffre keine hinreichende Sicherheit gegen unbefugte Entzifferung und kann sehr leicht „geknackt“ werden

In sofern bleibt das grob fahrlässig ..
von der unnötigen Verwendung der IMEI hier mal ganz abgesehen.

— geändert am 17.03.2012, 20:26:00

lg Voss

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 20:32:41 via App

wenn die imei deiner ansicht nach so sinlos ist das braucht man sie ja auch nicht verschlüssen bzw. was will jemand mit der imei anfangen

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

17.03.2012, 21:01:03 via App

warum generierst Du denn nicht einfach eine unique Number für jeden Deiner Kunden, anstatt mit deren weltweit eindeutigen Geräte IDs so unsicher umzugehen?

Nicht die IMEI ist unnötig sondern deren unnötige Verwendung durch Deine App.

Die IMEI ist eine DeviceID, welche es ermöglicht das Device weltweit eindeutig zu identifizieren. In sofern etwas das geschützt gehört. Warum bitte glaubst Du unternehmen große Hersteller ansonsten solche Anstrengungen, derartige Verstösse gegen den Datenschutz raschestmöglich zu bereinigen? Weil es unwichtig ist? sicher nicht.

Datenschutz ist kein Thema mit dem man leichtgertig umgehen sollte Johannes.

— geändert am 17.03.2012, 23:14:32

lg Voss

Antworten
Johannes
  • Forum-Beiträge: 75

17.03.2012, 21:17:54 via App

Ja da hast du wahrscheinlich recht das sollte ich noch nochmal überlegen!
Aber ich warte eigentlich noch immer auf einen hilfe zu meinem zu letzt geposteten Beitrag

Antworten
Markus B.
  • Forum-Beiträge: 636

17.03.2012, 22:57:57 via Website

Hi,
ist jetzt nicht wirklich schwer ... du solltest dir mal ein paar basic aneignen ...

1HttpURLConnection urlConnection = null;
2 try {
3 URL url = new URL ("http://www.example.at/Script.php?imei="+ NICHT_DIE_IMEI);
4 urlConnection = (HttpURLConnection) url.openConnection();
5
6 OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
7 String wert = out.toString(); // wert bzw. zahl auf der Seite into String
8 } catch (MalformedURLException e)
9 {
10 Log.e("MY_CLASS", e.getMessage());
11 } catch (IOException e)
12 {
13 Log.e("MY_CLASS", e.getMessage());
14 } finally{
15 if (null != urlConnection)
16 urlConnection.disconnect();
17 }

Gruß,
Markus

Antworten
Johannes
  • Forum-Beiträge: 75

18.03.2012, 09:06:20 via Website

Danke für die Antwort, muss mir jetzt noch überlegen was ich jetzt als nummer verwende!

Lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

18.03.2012, 11:16:49 via Website

Warum machst Du es nicht beispielsweise so:

1public String myUniqueNumber() {
2
3 String return_value = "";
4 byte[] result = null;
5
6
7 try {
8 // initialize SecureRandom
9 SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");
10
11 //generate a random number
12 String randomNum = new Integer( prng.nextInt() ).toString();
13 MessageDigest sha = MessageDigest.getInstance("SHA-1");
14 result = sha.digest( randomNum.getBytes() );
15
16 } catch (NoSuchAlgorithmException e) {
17 Log.e("Error", e.getMessage());
18 }
19
20
21 if (result != null) return_value = hexEncode(result);
22 else return_value = String.valueOf(System.currentTimeMillis()); // to be save on Error
23
24 return return_value;
25 }
26
27 static private String hexEncode( byte[] aInput){
28 StringBuilder result = new StringBuilder();
29 char[] digits = {'0', '1', '2', '3', '4','5','6','7','8','9','a','b','c','d','e','f'};
30 for ( int idx = 0; idx < aInput.length; ++idx) {
31 byte b = aInput[idx];
32 result.append( digits[ (b&0xf0) >> 4 ] );
33 result.append( digits[ b&0x0f] );
34 }
35 return result.toString();
36 }

Der Aufruf erfolgt dann zum Beispiel so: String myUniqueID= myUniqueNumber();

Jetzt speicherst Du Dir myUniqueID in einer Sharedpreference oder in der DB und prüfst beim Aufruf der App ob dieser Wert existiert. Wenn er dort existiert, verwendest Du diesen, ansonsten erzeugst und speicherst Du die ID.

So eine ID sieht dann bspw. so aus: 02be382bd5c6c7a1147f2bf7dcaa71274a242b92

— geändert am 18.03.2012, 11:18:24

lg Voss

Antworten