|
|
|
|
Strumenti |
16-02-2021, 09:11 | #1 |
Member
Iscritto dal: Jun 2020
Messaggi: 50
|
[C# - PHP] Mettere in sicurezza una comunicazione "SOAP Client e PHP Web Servervice"
Salve,
vorrei rendere sicura una comunicazione tra un Client in C# e un Web Service in PHP, attualmente comunicano in chiaro tra loro. La cifratura al limite non mi interessa molto se potrebbe diventare un problema di sviluppo, dato i due linguaggi in ballo. Mi interessa più creare una chiave di riconoscimento per ogni comunicazione che devo effettuare. Il Client Comunica con il Services tramite SOAP, quindi ho aggiunto un "Riferimento Web" al Progetto. Posto uno stralcio di codice per capire come è strutturato: Client C#: Codice:
private static WebReference.My_Service wsMyService = new WebReference.My_Service(); UserData = JsonConvert.DeserializeObject<dynamic>(wsMyService.GetUser("email@email.it")); string Nome = UserData.Nome; Services PHP: Codice:
<?php require_once('lib/nusoap.php'); $server = new soap_server(); $server->configureWSDL('My_Service', 'urn:My_Service'); GetUser($_email) { return json_encode( /*** tutta la query al Database ***/ ); } $server->register('GetUser', // param array('_sEmail'=>'xsd:string'), // return array('return'=>'xsd:string'), // namespace "https://www.my-site.it", // soapaction false, // style 'rpc', // use 'encoded', // description 'Get User'); $server->service(file_get_contents('php://input')); ?> Grazie mille! Ultima modifica di qwerty_race : 16-02-2021 alle 11:27. |
16-02-2021, 09:24 | #2 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2991
|
Ma non è più rapido mettere tutto sotto HTTPS e buonanotte? (o non ho capito io il problema?)
|
16-02-2021, 11:15 | #3 | |
Member
Iscritto dal: Jun 2020
Messaggi: 50
|
Quote:
Se evita questo OK! Potresti darmi una dritta per come fare? |
|
16-02-2021, 12:23 | #4 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2991
|
Scusa ma allora la domanda posta all'inizio non era molto ben fatta.
Tu vuoi mettere in sicurezza il sistema affinchè non risponda a chiunque conosca l'endpoint, ma con una sorta di autenticazione. Direi allora assumendo che usi apache - Metti tutto sotto https (con un certificato tuo oppure letsencrypt che fai prima) - Costruisci un "basilare" sistema di autenticazione (ad esempio https://stackoverflow.com/questions/...ion-using-soap ) |
17-02-2021, 09:22 | #5 | |
Member
Iscritto dal: Jun 2020
Messaggi: 50
|
Quote:
dal Client quando aggiungo un nuovo "Riferimento Web", "https://www.mysite.it/test.php?wsdl" visualizzo lo schema XML come dovrebbe essere, termino la procedura correttamente, ma poi quando vado ad utilizzarlo: Codice:
private MyWebServices myWebServices = new MyWebServices(); Il nome di tipo o di spazio dei nomi 'MyWebServices' non è stato trovato, probabilmente manca una direttiva Using o un riferimento all'assembly. Inoltre se faccio un "Aggiorna Riferimento Web" mi da il seguente errore: Errore di strumento personalizzato 'MSDiscoCodeGenerator', Impossibile trovare una definizione per http://schamas.xmlsoap.org/wsdl/:MyBinding perchè manca la descrizione del servizio con spazio dei nome http://schamas.xmlsoap.org/wsdl/. Nome parametro: name Come posso risolvere questa cosa? Ultima modifica di qwerty_race : 17-02-2021 alle 09:34. |
|
17-02-2021, 09:58 | #6 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2991
|
Qui hai un qualche errore in C# che non conosco e per cui alzo le mani.
Tuttavia penso sia anche difficile poter poi dare un aiuto se metti una riga di tutto il codice...... |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:48.