2009-06-21 6 views
0

Je dois transférer des données d'un script PHP sur mon serveur local vers une API distante (également écrite en PHP) sur mon serveur d'hébergement. Il s'agit essentiellement d'un système de contrôle de version primitif et j'utilise à la fois HTTP GET et HTTP POST pour transférer des fichiers et des chaînes. Je voudrais que la connexion soit cryptée, mais mon hébergeur (partagé) me dit que je ne peux pas utiliser SSL parce que je ne peux pas obtenir une adresse IP dédiée - et même si je le pouvais, je ne veux pas dépenser plus d'argent à ce sujet.Transfert de serveur de données crypté vers un serveur, entre 2 scripts PHP

Ma question est: Y a-t-il une meilleure façon de faire?

Certaines possibilités que j'ai considérées utilisent l'extension mcrypt en PHP pour crypter les données à une extrémité et décrypter à l'autre.

J'ai aussi pensé à TLS, qui, si je comprends bien, peut être utilisé pour créer une connexion sécurisée sans certificats?

EDIT: Veuillez voir this question comme suite concernant OpenPGP, GnuPG et le transfert en utilisant MIME.

Répondre

2

Quel est le problème avec l'utilisation d'un simple cryptage symétrique (par exemple avec l'aide de mcrypt) ou quelque chose avec une clé publique/privée si vous avez vraiment besoin de la signature et tout? Une autre solution possible pourrait être d'utiliser les outils système installés et de mettre tous vos fichiers dans un fichier zip protégé par mot de passe. (appel de la fonction php "system()")

+0

cryptage symétrique serait la solution directe.Mais c'est une question de sécurité car il doit sauvegarder la clé de décryptage sur le serveur quelque part. Pour un système de clé publique/privée, j'opterais pour pgp, mais je doute que son hébergeur l'ait installé ou le laisse l'installer. – jitter

+0

@jitter Je ne vois pas la chose compromettante comme un problème de cryptage, car si un serveur est piraté, vous êtes condamné dans tous les cas. Pour la partie pgp: Il y a quelques bibliothèques libres complètement écrites en php (par exemple TinyPGP http://www.codeproject.com/KB/HTML/Tiny_PGP.aspx). – merkuro

+0

Encore une chose: vous pouvez limiter l'accès aux zones spécifiques de la réception à exactement une adresse IP. – merkuro

1

Vous pouvez créer un certificat auto-signé à utiliser pour SSL. Il n'y a aucune raison pour que vous payiez quelqu'un comme verisign pour un certificat si vous êtes le seul à avoir confiance dans le certificat.

Vous pouvez également prendre en compte les éléments suivants. Un service d'hébergement partagé tel que Dreamhost (que j'utilise) vous coûtera 10 $ par mois pour l'hébergement, 4 $ par mois pour l'IP statique, et 15 $ par an (1,25 par mois) pour un véritable certificat SSL. Ce n'est donc que 15 $ par mois pour un compte d'hébergement partagé avec un vrai certificat signé par une véritable autorité de certification. Je ne sais pas avec qui vous êtes actuellement, ni ce qu'ils vous facturent, mais si vous êtes sérieux au sujet de ce projet, 15 $ par mois, ce n'est pas beaucoup d'argent à dépenser.

+0

uhm .. son hébergeur dit qu'il ne peut pas obtenir un ip dédié. De même, un certificat auto-signé ne fera rien car il est probablement sur un hôte virtuel basé sur un nom. – jitter

+0

Je ne crois pas qu'un certificat auto-signé doit utiliser une adresse IP spécifique. Je pense que c'est seulement nécessaire si vous voulez que votre certificat soit signé par une autorité de certification. – Kibbee

+0

Ce n'est pas le problème. Il est en hébergement partagé, donc il y a plusieurs sites sous la même adresse IP. L'établissement de liaison SSL/TSL se produit avant que le nom d'hôte ne soit envoyé au serveur. Donc, le serveur ne peut pas savoir pour quel domaine il devrait server le certificat. Donc il ne peut pas le faire. – jitter

1

Je pense que vous êtes en quelque sorte en haut de la rivière sur celui-ci. Avec un hôte partagé, la solution la plus évidente est HTTPS, mais s'ils ne vous laissent pas faire, vous êtes bloqué. Toutes les autres options que vous trouverez nécessiteront l'ouverture d'une socket et je doute que votre hôte partagé le permette non plus.

Vous pouvez regarder dans Amazon Web Services. Je ne sais pas combien vous payez pour l'hébergement, mais ils ont des serveurs virtuels disponibles pour 10 cents par heure (environ 72 $ par mois). Ensuite, vous seriez libre de faire ce que vous vouliez.

Questions connexes