(Regarde ce que j'ai fait là?)

Je développe une application WinForms qui a besoin de récupérer des informations à partir d'un fichier contenant des informations sensibles. Les informations récupérées sont utilisées pour effectuer des calculs complexes, mais elles incluent des éléments comme les salaires de certaines tranches de salaire pour les employés d'une grande entreprise. L'application WinForms devra éventuellement être déployée auprès des membres de cette société, mais je dois m'assurer de ne pas leur révéler le contenu de ce fichier.

Le fichier lui-même est un fichier JSON et est actuellement stocké localement dans la structure de fichiers de projet Visual Studio.

Si je devais «publier» cette application via le menu Générer de Visual Studio et la publier via un lien Web, les utilisateurs pourraient-ils ouvrir ce fichier JSON et l'afficher? Si oui, y a-t-il un moyen d'éviter cela? J'ai envisagé de stocker le fichier en ligne et d'y accéder via une requête HTTP, mais je ne sais pas vraiment grand-chose à ce sujet, alors je pourrais le faire avec quelques conseils.

À la vôtre, Josh

0
Josh Brass 30 déc. 2015 à 16:48

2 réponses

Meilleure réponse

Si je devais «publier» cette application via le menu Générer de Visual Studio et la publier via un lien Web, les utilisateurs pourraient-ils ouvrir ce fichier JSON et l'afficher?

Oui.

Si oui, y a-t-il un moyen d'éviter cela?

Seulement en ne publiant pas le fichier.

Vous devriez envisager de stocker ces informations dans une base de données accessible uniquement via un compte autorisé via HTTPS. Je recommanderais d'utiliser WCF car il s'intégrera bien avec C # et WinForms. La meilleure approche serait d'effectuer les calculs côté serveur (soit dans le service WCF lui-même, soit en tant que procédures stockées dans la base de données). Il vous suffit donc de rassembler les entrées sur le client, de les renvoyer au serveur et d'afficher le résultat.

Vous pouvez également effectuer des opérations telles que consigner toutes les tentatives (réussies ou non) pour accéder à ces données afin de disposer d'une piste d'audit complète. Vous pouvez également exposer votre service WCF à d'autres clients si nécessaire.

3
ChrisF 30 déc. 2015 à 14:01

Je voudrais créer un service séparé (API Web ou WCF) qui a accès à ce fichier et sait comment servir les parties publiques de celui-ci à votre application.

Supposons donc que le fichier vive à \\hrserver\C$\sensitive.dat. Votre service a accès à ce fichier, mais pas les applications clientes. Vos applications clientes accèdent au service (https://hrserverhelper/GetHrData), qui encapsule l'authentification / l'autorisation dans ce fichier. Il analyse ensuite les données sensibles (peut-être à partir du JSON que vous êtes déjà configuré pour créer pour ce fichier) et transmet les données non sensibles à votre application cliente.

S'il s'avère que toutes les données du fichier sont sensibles, demandez à votre service de fournir des opérations pour effectuer les calculs que votre application WinForms effectue actuellement. Par exemple, votre application WinForms soumet les entrées qu'elle souhaite effectuer à une WebMethod qui sait comment effectuer ces calculs avec les données sensibles - la WebMethod crache les résultats.

Cependant, dans ce scénario, sachez que les compétences mathématiques de base seront probablement capables de rétroconcevoir les données «sensibles» ici. Si je soumets 2 et que j'obtiens 4, et que j'en soumets 3 et que j'obtiens 6, je suppose que le nombre "sensible" est 2.

1
Dan Field 30 déc. 2015 à 13:59