Async PHP-Skripte mit POST/GET Parametern aufrufen

    • VB.NET

    Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

      Async PHP-Skripte mit POST/GET Parametern aufrufen

      Da das Thema Sicherheit in den letzten Tagen in großes Thema war, dachte ich mir, mal zu erläutern, wie man sicher & einfach PHP-Skripte mit Parametern aufruft.
      Die WebClient-Klasse stellt dazu eigentlich schon fast alles zu Verfügung:


      Imports:

      VB.NET-Quellcode

      1. Imports System.Net
      2. Imports System.Collections.Specialized
      3. Imports System.Text


      VB.NET-Quellcode

      1. Using wc As New WebClient
      2. 'Das PHP-Skript
      3. Dim Script As New Uri("http://www.foo.com/test.php")
      4. 'POST/GET
      5. Dim Method As String = "POST"
      6. 'Die Parameter, die übergeben werden sollen
      7. Dim Params As New NameValueCollection()
      8. Params.Add("foo", "Hallo PHP!")
      9. wc.UploadValuesAsync(Script, Method, Params)
      10. AddHandler wc.UploadValuesCompleted, New UploadValuesCompletedEventHandler(Sub(s As Object, e As UploadValuesCompletedEventArgs)
      11. 'Der Rückgabewert
      12. Dim Result = Encoding.ASCII.GetString(e.Result)
      13. Debug.Print(Result)
      14. End Sub)
      15. End Using


      So könnte z.B euer PHP-Skript aussehen: (test.php)

      PHP-Quellcode

      1. <?php
      2. //Hier wird der Parameter 'foo' abgefragt
      3. $foo = $_POST['foo'];
      4. //Hier kann dann irgendwas mit den Paramatern gemacht werden..
      5. //Rückgabewert
      6. print("Hallo VB!");
      7. ?>


      /Falls Sowas schon im Forum existiert, dann einfach löschen :)
      /nicht getestet
      Jo, sieht aus wie ein brauchbares Beispiel, Php mit Parametern aufzurufen.

      Aber inwiefern ist das jetzt sicher?

      Also selbst wenn du noch einen Passwort-Zugang einbautest also NetworkCredentials verwendetest (haste ja (noch) nicht) - wäre dieser Aufruf überhaupt nicht sicher, denn mit WireShark kann jedermann den ausgehenden Traffic protokollieren, und erwartete Parameter und ggfs. Credentials auslesen, und dann selbst was uploaden nach Belieben.
      Sicherheit sollte man hier nach Möglichkeit dadurch erreichen, dass man die Gegenstelle via HTTPS kontaktiert.
      Dies ist allerdings auch keine echte Sicherheit, da man durch ARP Spoofing/MITM auch HTTPS recht einfach kompromittieren kann.

      Eigene "Sicherheitslösungen" führen hier nicht wirklich zu was. Wenn man nicht gerade Kryptographie mindestens 4 Semester studiert hat, wird das nichts.
      Ja gut, aber wenn man Zugangsdaten direkt im PHP angibt, sehe ich kein Sicherheitsrisiko.
      Also z.B.:

      PHP-Quellcode

      1. <?php
      2. ftp_login("foo@gmail.com","****")
      3. ?>


      Was natürlich unsicher ist/wäre:

      PHP-Quellcode

      1. <?php
      2. $user = $_POST['user'];
      3. //...
      4. ftp-login($user,..);
      5. ?>

      Da müsste man noch irgendeine Verschlüsslung mit einbauen.
      (Wovon ich, ehrlich gesagt, keine Ahnung habe)
      /nicht getestet
      Wenn man mittels FTP nur ein Wrapper baut, so kann trotzdem jeder, der die URL + Parameter kennt (die man sich aus dem Programm oder Wireshark raussuchen kann, trotzdem unfug auf dem FTP Anstellen ohne direkt die Zugangsdaten zu haben.
      Es kommt auf den Zweck an. Man sollte in jedem Falle so viel sicherheitstechnische Logik dem Server überlassen wie möglich. Einer Dateilöschung oder ähnlichem müsste ein Login vorausgehen. Diese Daten dürfen dann natürlich nicht hardcodet sein, versteht sich von selbst.
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.