Quel serait le moyen le plus sûr et le plus sûr pour permettre au logiciel de se mettre à jour automatiquement sans ouvrir trop de trous pour permettre à un pirate d'accéder facilement à un système?Façon sûre et sûre de mettre à jour sur Internet en C#
Répondre
Avez-vous examiné le déploiement de ClickOnce?
http://msdn.microsoft.com/en-us/library/t71a733d(VS.80).aspx
Le bref aperçu est ici:
http://msdn.microsoft.com/en-us/library/142dbbz4(VS.80).aspx
Si vous allez faire votre propre système, vous voudrez probablement avoir une paire de clés publique/privée.
Ainsi, vous compresseriez la mise à jour.
Chiffrez ensuite avec la clé privée sur le serveur.
Le client peut ensuite le déchiffrer et le décompresser, puis l'installer. De cette façon, tant que votre clé privée est sécurisée, vous pouvez vous assurer que la mise à jour est légitime. La seule faiblesse ici est que si quelqu'un a changé la clé publique à une autre clé, alors ils pourraient tromper ce programme en pensant qu'un cheval de Troie est une mise à jour valide.
Il existe différents schémas que vous pouvez utiliser pour contourner ce problème, mais cela dépend du travail que vous voulez y consacrer.
Je recommande de ne pas créer votre propre mise à jour automatique, utilisez ClickOnce s'il fonctionne pour vous ou un composant commercial de mise à jour automatique si ce n'est pas le cas.
Si vous voulez voir ce qui est impliqué, j'ai écrit une série sur l'écriture d'un composant auto-mise à jour sur mon blog il y a quelque temps, le dernier message avec des liens vers tous les postes de la série est à l'adresse: http://www.nbdtech.com/blog/archive/2007/08/07/How-To-Write-an-Automatic-Update-System-Part-8.aspx
ClickOnce mise à jour automatique est tout juste et bien, mais tout le monde peut admettre que ce n'est pas la solution la plus à la mode. J'ai récemment développé une solution qui nécessite une telle fonctionnalité de mise à jour automatique. Voici une liste des étapes rapides que j'ai suivies pour déployer mon propre service de mise à jour qui permet également des rétrogradations avec un savoir-faire «minimal».
Ajouter un projet d'installation à la solution afin que le projet puisse être enveloppé soigneusement dans un package d'installation .exe ou .msi. Vous trouverez ci-dessous la configuration d'un serveur FTP avec les informations d'identification de l'utilisateur que seul votre application connaît. Sur le serveur ftp, configurez un répertoire par défaut pour l'emplacement des nouvelles mises à jour.
Votre application vérifie la connexion Internet au démarrage, connecte-toi à ton serveur FTP distant et vérifie s'il y a de nouveaux fichiers à télécharger.
Téléchargez les nouvelles mises à jour de votre application cliente et placez-les dans un dossier nommé date-heure pour référence ultérieure. Certaines vérifications doivent être en place pour s'assurer que vous ne téléchargez pas les mêmes anciens fichiers.
Fermez l'application et exécutez la nouvelle installation.Selon la façon dont vous configurez votre projet d'installation, l'assistant d'installation peut supprimer complètement la version précédente ou simplement mettre à jour partiellement (patches, etc.).
Votre application peut avoir une fonction permettant de revenir à la version précédente en accédant au répertoire de mise à jour local et en récupérant les fichiers précédemment téléchargés. C'est là que les fichiers estampillés date-heure sont utiles pour référence.
Cette solution offre un niveau de personnalisation dont la plupart des solutions d'entreprise auront besoin, et je trouve que cela fonctionne très bien pour moi. Les serveurs FTP sont sécurisés et fiables en ce qui concerne les téléchargements de fichiers. Vous pouvez trouver beaucoup de bibliothèque d'aide au téléchargement FTP sur Internet, c'est donc une question de faire le travail comme vous voulez et ne pas trop se soucier de la façon dont cela fonctionne.
- 1. Comment accéder au contrôle C# WPF de façon sûre?
- 2. façon la plus sûre de créer des sessions en php
- 3. Version sûre de Path.Combine
- 4. Source sûre, verrouillage exclusif sur les fichiers
- 5. C#: Cette affectation de zone est-elle sûre?
- 6. Façade sûre/flexible pour Windows FormatMessage
- 7. Est-ce que cette façon de détecter les battements de cœur est sûre et cohérente?
- 8. Source sûre d'ajouter le dossier parent redondant
- 9. Manière sûre de changer la priorité d'un NSOperation
- 10. Cette fonction peut-elle être plus sûre? Vous cherchez des conseils et vos pensées!
- 11. Meilleure façon de mettre à jour dans Linq To SQL
- 12. Migrer une base de données source sûre à SubVersion avec l'histoire
- 13. Mise à jour des applications Windows VB.net sur Internet
- 14. veulent mettre à jour l'application sur l'air
- 15. Est-ce que l'exposition du jeton de protection CSRF d'une session est sûre?
- 16. Quelle est la manière la plus sûre/appropriée d'implémenter un modèle singleton thread-safe?
- 17. en utilisant php et curl pour mettre à jour mediawiki
- 18. Mettre à jour le tableau avec un processus multithread et mettre à jour certaines lignes en fonction de la priorité
- 19. Correct façon de mettre en page l'interface C#
- 20. Meilleure façon d'authentifier en PHP
- 21. Insérer et mettre à jour en même temps
- 22. Est-ce que la mémoire de flex est sûre (sans fuite)
- 23. Comment mettre à jour le statut Twitter de C#?
- 24. Meilleure façon de mettre en sandbox Apache sur Linux
- 25. Comment mettre à jour mysql?
- 26. Mettre à jour le panneau de mise à jour
- 27. Mettre à jour le parent Modèle sur la mise à jour de l'enfant
- 28. Lire et mettre à jour le flux de fichiers
- 29. Comment mettre à jour datagridview
- 30. Comment vous assurer que la vue est sûre des exceptions nulles
+1 pour ClickOnce. Fournit une excellente solution pour le déploiement Web qui vous protège de tout ce qui est nécessaire, offrant un processus de déploiement et de déploiement extrêmement simple. Mise à jour pour les clients sont assez transparente et indolore. – jrista