Webservice und Verschlüsselung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Webservice und Verschlüsselung

    Für ein Projekt, das über PHP-Webservices realisiert werden soll, ist es erforderlich, grundsätzliche Verschlüsselung zu implementieren.

    Dabei besteht das Problem nicht in dem Kryptographieverfahren selbst (PKI, Signaturverfahren, usw. existiert bereits), sondern in deren Anwendung auf die SOAP-Nachricht.

    Hat schon jemand eine einfache Sicherung von PHP-Webservices programmiert und hat einen grundsätzlichen Ansatz?

    Ideal wäre es, wenn die Sicherheit transparent zum normalen Webservice wäre. Dazu müsste es möglich sein, die SOAP-Nachricht vor dem Senden und direkt nach dem Empfangen zu manipulieren. Kennt jemand eine Möglichkeit, wie man den SOAP-Envelope abfangen kann?

    Da das Projekt noch in der Planungsphase ist, könnte es in ext/SOAP, NuSOAP und PEAR::SOAP implementiert werden.

    Ideen?

    Marcus

  • #2
    Ich hab mal nen Client geprogged ohne NuSoap, PEAR::SOAP oder sonst was nach Web Services Security - UsernameToken Profile 1.1 :

    http://www.oasis-open.org/committees...rofile-1.1.pdf

    Nachtrag:
    Hier sieht man, wie einer bei nem NuSoap-Client den Soap-Env entsprechend erweitert hat:

    http://www.pear-forum.de/fpost2835.html
    Zuletzt geändert von Quetschi; 10.01.2006, 21:21.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Bin schon etwas weiter gekommen und habe eine Methode gefunden, mit der man die requests abfangen kann: Möglich ist dies, indem man die __doRequest() von SoapClient und handle() von SoapServer erweitert.

      Bin nicht so bewandert in PHP-OOP. Momentan ist es folgendermaßen realisiert:

      PHP-Code:
      class LocalSoapClient extends SoapClient {
        function 
      __doRequest($request$location$action$version) { 
          ...
            return 
      parent::__doRequest($request$location$action$version);
          ...
        }
        
      $client = new LocalSoapClient(......); 
      Besser wäre es, wenn man die Funktion __doRequest von SoapClient ohne den Umweg über die neue Klasse LocalSoapClient ändern würde, weil man dann im eigentlich Webservice-Client nicht zwischen den beiden Klassen unterscheiden müsste. Ist es möglich, die Methode direkt zu ändern?

      Kommentar

      Lädt...
      X