Question

J'ai une application ASP.Net hébergée sur les serveurs Web de mes clients d'entreprise sur leurs réseaux internes.

Je souhaite appliquer divers termes de licence connus (date d'expiration / nombre d'utilisateurs, etc.)

Je prévois d'utiliser un document XML chiffré contenant les termes sous forme de paires clé / valeur et de le stocker sur le serveur Web sous forme de fichier texte chiffré.

Je prévois ensuite d'utiliser un Httpmodule de sécurité personnalisé pour déchiffrer le fichier crypté puis extrayez et stockez les termes en mémoire (Application?), puis appliquez-les lors de chaque demande de page pour la zone correspondante de l'application.

Existe-t-il une meilleure approche pour appliquer les conditions de licence d'une application Web?

Était-ce utile?

La solution

J'ai choisi un itinéraire différent: j'ai simplement placé les informations de licence dans un champ chiffré de la base de données pour ne pas avoir à me soucier d'un Httpmodule. SQL Server dispose des fonctions EncryptByKey et DecryptByKey qui facilitent la récupération / la mise en place de données cryptées. J'ai également utilisé une simple clé de mot de passe pour rendre l'ensemble du processus très facile à gérer. J'apprécie votre approche - elle est vraiment très intelligente - mais je pense que vous avez rendu la vie un peu trop difficile pour vous-même!

En ce qui concerne la sécurité, ceci est relativement sûr tant que vous ne fournissez pas le code source. Le seul inconvénient est la possibilité qu’ils désassemblent votre code pour tenter d’extraire la phrase secrète ou une autre technologie de cryptage (il se peut que cela s’applique également à votre approche Httpmodule). Ce n'est pas quelque chose qui m'inquiète cependant, car je travaille principalement avec des entreprises du Fortune 500 et que j'ai un accord juridique avec elles qui inclut un "pas de désassemblage". clause. La grande majorité des entreprises ne veulent tout simplement pas prendre le risque juridique qu'elles courraient en faisant cela simplement pour obtenir des fonctionnalités supplémentaires ou développer leur base de données. Par contre, si vous distribuez à des milliers d’utilisateurs anonymes, l’histoire sera peut-être différente.

Mise à jour: si vous n'utilisez pas SQL Server, vous pouvez également utiliser une forme de cryptage basé sur un code pour enregistrer / récupérer vos informations de licence. Si vous avez besoin d'une classe de chiffrement, j'ai téléchargé une classe AES simple mais extrêmement puissante pour un réponse précédente .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top