2010-06-25 9 views
2

Je suis vraiment à la recherche de conseils. Voici le scénario:Comment dois-je stocker les informations d'identification ftp dans une base de données MySQL?

Un utilisateur peut ajouter un compte FTP via un panneau de contrôle protégé par mot de passe. J'ai besoin de sauvegarder ces informations d'identification afin que le compte FTP puisse être connecté automatiquement. C'est facile mais je veux adopter l'approche la plus sûre possible. Je pensais éventuellement à crypter le mot de passe côté client et ensuite envoyer le mot de passe crypté au serveur pour le stockage. Ensuite, la valeur cryptée sera retirée et déchiffrée côté client avant la connexion FTP a été faite.

Je sais que ce n'est pas trop sécurisé mais c'est tout ce que je peux penser. Avez-vous d'autres idées brillantes pour rendre cela plus sûr? Merci!

Répondre

0

Le stockage sécurisé des informations d'identification est facile - cryptez-le côté serveur et tout va bien.

La transmission sécurisée des données est beaucoup plus difficile si vous ne pouvez pas utiliser le protocole SSL.

Le moyen le plus simple serait de crypter les données avec leur mot de passe haché avant la transmission (de chaque extrémité); Ainsi, la clé de cryptage n'est pas transmise avec les données ou stockée dans le code côté client.

Ce n'est pas idéal, vous voulez idéalement le SSL, mais c'est mieux que d'envoyer du texte brut ou de crypter avec une clé stockée dans (ou générée par) votre code.

+0

Le problème avec le cryptage côté serveur est que j'ai besoin des informations d'identification en texte brut plus tard si je vais me connecter au serveur FTP avec les informations d'identification enregistrées. Je ne sais pas comment contourner cela. En outre, lors de la connexion à FTP, j'utilise ftp_ssl_connect pour se connecter au FTP des utilisateurs. Je ne connais pas grand-chose à la sécurité, mais je suppose que c'est un peu mieux que ftp_connect. –

+0

@Eric: vous ne pouvez utiliser ftp_ssl_connect que si le serveur FTP supporte SSL-FTP. Si l'utilisateur est capable de choisir un serveur FTP arbitraire, ce ne sera certainement pas toujours le cas. –

+0

Je comprends. Qu'en est-il de ssh2_sftp? Serait-il préférable de se connecter via ssh2_connect si je peux le faire fonctionner sur mon serveur? En outre, le stockage de mot de passe ragarding, je suis toujours bloqué car je ne peux pas crypter le mot de passe sur mon serveur, puis se connecter au FTP de l'utilisateur à une date ultérieure, car je devrais déchiffrer le mot de passe. Des pensées? –

0

Je pense que votre méthode est réellement raisonnable, avec une mise en garde majeure: utilisez le cryptage à clé publique (cryptage asymétrique). En réalité, tant que vous utilisez le cryptage à clé publique, le cryptage côté client n'est pas un problème. Le but du chiffrement par clé publique est que vous puissiez partager votre clé publique avec le monde entier. Cependant, tant que vous gardez votre clé privée en sécurité, vous serez le seul à pouvoir la déchiffrer.