2012-09-24 5 views
4

J'écris l'application sur C# (WPF) pour Windows. J'ai besoin de stocker des données pour cette application (dans la base de données, je pense). Mais j'ai besoin de sécuriser ces données (de modification). Je prévois de distribuer cette application, de sorte que la protection de système de fichiers ne correspond pas à cette situation. Aussi, je veux utiliser la base de données NoSql. Ma question est de savoir quelle base de données NoSQL prend en charge la protection des données et peut être installée avec un minimum d'efforts en tant que base de données d'application intégrée?Quelle base de données NoSQL peut protéger les données?

Mise à jour: Alors, quel est le meilleur Single User NoSQL DB, pas de sécurité, pour l'application WPF redistribuable?

+0

Donc ce que vous voulez est essentiellement une base de données mono-utilisateur en lecture seule? – Philipp

+1

"donc la protection du système de fichiers ne correspond pas à cette situation" - mais si la base de données est servie à partir de fichiers locaux, l'utilisateur est toujours libre de changer les fichiers, n'est-ce pas? Ils peuvent installer le client pour la base de données intégrée que vous utilisez et ouvrir, modifier et remplacer les fichiers avec cela. Quelle protection exacte espérez-vous - un certain niveau d'obfuscation? Données cryptographiquement signées? Vous pouvez probablement signer des fichiers de données aussi facilement que vous pouvez une base de données, et dans tous les cas, l'utilisateur serait libre de déposer leurs propres clés de signature dans leur copie de votre application pour contourner cela de toute façon. – Rup

+0

J'ai besoin de stockage de données sur le PC client et j'ai besoin que seul mon programme puisse fonctionner avec ces données. Avant j'ai utilisé la base de données MySQL. J'espère que les utilisateurs ne peuvent pas modifier les fichiers de données. Mais j'ai besoin d'une autre solution. –

Répondre

2

Lorsque les données sont sur le disque dur de l'utilisateur, il n'y a aucun moyen d'empêcher l'utilisateur d'y accéder.

Le stocker dans un format obscur, comme une base de données peu commune, ne le rendrait pas beaucoup plus difficile. Même chiffrer la base de données ne serait pas un obstacle insurmontable. Vous devez stocker la clé de déchiffrement quelque part dans votre application où un pirate déterminé la trouvera lorsque vous la rechercherez assez longtemps.

Lorsque vous voulez vraiment protéger vos données, il est impossible de les stocker sur votre propre serveur et de laisser le programme y accéder via Internet. Je recommanderais d'utiliser un webservice pour cela.

Ceci, bien sûr, signifie un coût supplémentaire pour vous, car vous devez payer pour le serveur. Mais vous obtenez également quelques avantages supplémentaires pour cela:

  • Vous pouvez donner à chaque utilisateur un nom d'utilisateur et un mot de passe. Cela rend beaucoup plus difficile de pirater votre produit (trop d'IP de différents réseaux utilisant le même nom d'utilisateur = vrais logiciels pirates)
  • La mise à jour de votre base de données ne nécessite aucun déploiement sur les machines des utilisateurs
  • Vous pouvez écrire "cloud" "partout dans votre matériel de marketing :)
+0

Malheureusement en Russie de nombreuses entreprises (nos clients) n'ont pas Internet = (Donc, peut-être vous pouvez me donner des conseils que base de données NoSQL je peux intégrer dans mon application? –

+0

Je voulais dire base de données NoSql sans sécurité dans ce cas. –

Questions connexes