2 votes

Envoyer des données sensibles de mon site web à mon application C#

J'ai un site Web ordinaire hébergé en externe (plateforme linux) avec des technologies mysql et php installées. J'ai besoin de mon application C# pour collecter les données du site web.

J'ai une base de données MYSQL sur mon site Web et je veux envoyer mon nom d'utilisateur et mon mot de passe afin d'accéder à certaines données sensibles (en utilisant un script PHP).

Ma conception actuelle ressemble à quelque chose comme ceci :

L'application C# envoie un POST à un login.php script sur le site web.

Par exemple, mywebsite.com/login.php?username=admin?password=. MD5HashedPassword

Le script génère une page blanche avec "OK" si le nom d'utilisateur et le mot de passe correspondent à ceux de la base de données.

Maintenant, je pense que c'est probablement sécurisé pour la simple connexion, mais si je veux que le script de connexion génère des données XML qui contiendraient des informations sensibles, je ne pense pas que ce soit une façon sécurisée de le faire. Ai-je raison de penser cela ?

Alors, quelle direction dois-je prendre ? Devrais-je avoir une sorte de session PHP entre mon application et le site web ? Est-ce une chose simple à faire ? Devrais-je abandonner l'utilisation de PHP et utiliser une autre technologie ?

Toutes les opinions et suggestions sont les bienvenues.

Merci beaucoup

3voto

Freedom_Ben Points 3366

Tout devrait bien se passer, à condition que les conditions suivantes concernant votre transaction soient remplies :

  1. La requête POST vers la page PHP est envoyée du serveur C# vers le serveur PHP, et le navigateur de l'utilisateur effectue les opérations suivantes pas effectuer le POST. Si le navigateur de l'utilisateur exécute le POST vers le serveur PHP, un attaquant peut simplement intercepter la requête avec un proxy du type Suite de Burp et extraire le mot de passe haché, puis faire des demandes supplémentaires de nature malveillante.

  2. Le nom d'utilisateur et le mot de passe sont transmis comme paramètres POST et non comme paramètres GET dans une chaîne de requête. Vous avez utilisé cet exemple : e.g mywebsite.com/login.php?username=admin?password=MD5HashedPassword qui me semble être une requête GET utilisant une chaîne de requête. Ceci est pas sûr.

  3. La demande POST ne passe que par HTTPS/SSL et non par HTTP normal. Cela permet de s'assurer que la communication est cryptée à partir du TCP descendant.

-1voto

bmm6o Points 2692

SSL est le moyen standard de protéger les données sur le réseau. Si vous disposez d'un certificat, il vous suffit de le charger dans votre serveur Web (le processus varie selon les serveurs) et de vous assurer que votre programme spécifie https comme protocole.

Votre système d'authentification semble... non standard. En général, vous ne pouvez pas utiliser les formulaires d'authentification de votre plate-forme si vous utilisez des requêtes http programmées. Mais plutôt que de déployer votre propre système, vous devriez préférer l'authentification de base ou digest. Dans ce cas, les informations d'identification seront transmises dans un en-tête plutôt qu'explicitement dans le cadre d'une chaîne de requête. Puisque vous utilisez SSL, l'authentification de base est sûre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X