Question

Je ne comprends pas très bien comment le code Silverlight fonctionne dans le navigateur. Les assemblages sont-ils téléchargés sur la machine cliente? Existe-t-il une chance que le code soit décompilé à l'aide de Reflector ou d'un outil similaire? Si oui, quelles options a-t-on pour protéger le code? Les obfuscateurs .net fonctionnent-ils avec Silverlight?

Était-ce utile?

La solution

Pour afficher une application Silverlight, le client télécharge un fichier .xap contenant la dll, un fichier XML de configuration et des ressources facultatives. La dll contient le code c # compilé qui s'exécute dans un environnement d'exécution Silverlight sur un ordinateur client. Le runtime Silverlight est fondamentalement un sous-ensemble du runtime complet .net. Donc, le point est que l'utilisateur obtient le code dans la DLL et peut ensuite utiliser des outils pour obtenir le code source d'origine. Donc, au mieux, vous pouvez faire de l’obscurcissement. Toujours pour le code très critique qui ne devrait pas être l'option. Vous pouvez utiliser un autre moyen (WCF ou d’autres services Web pour masquer une partie de votre code) si cela répond à vos besoins.

Autres conseils

Chaque fois que vous vous trouvez dans un navigateur Web, tous les codes côté client sont téléchargés sur la machine et peuvent être examinés par l'utilisateur. Cela vaut pour Javascript, Flash et Silverlight.

Si vous avez un code propriétaire qui doit absolument être masqué, vous devez le placer sur le serveur et exposer une API que les clients peuvent appeler pour afficher des informations à l'utilisateur.

Si vous voulez voir à quel point il est facile de consulter le code d'une application silverlight, lancez SilverlightSpy texte du lien par FirstFloor . Tant que vous avez .NET Reflector installé, vous pourrez voir (comme vous interagissez avec l'application) tout le code source, y compris les fichiers xaml.

Etant donné que le code est téléchargé sur le client (et même essayer de l’empêcher avec pragma no-cache ne fonctionnera pas car ils peuvent cliquer sur l'URL), vous devrez protéger votre code en conservant une logique importante sur le serveur.

Si vous craignez que quelqu'un vole votre propriété intellectuelle et que la loi ne suffit pas, vous devrez alors obscurcir votre code. Mais je n’appellerais pas cette protection proprement dite, mais un moyen de dissuasion pour l’ingénieur inverse occasionnel.

Mettre un pragma, pas de cache, empêchera le .xap d'être stocké sur la machine, mais le plugin Silverlight le diffusera. Sans le pragma, le fichier .xap est stocké dans les fichiers Internet temporaires.

Le fait de placer l'application sur une page sur https protégera davantage la transmission du .xap

Si possible, demandez une authentification pour afficher la page Web / le fichier .xap (merci Joel)

Emrah,

Oui, l’obscurcissement est possible pour une application SL.

Oui, les fichiers Silverlight xap ne sont rien d’autre que des fichiers zip contenant vos assemblages; ils ont donc besoin d’une protection par obfuscation. Donnez à Crypto Obfuscator un essai: il bloque directement les fichiers xap, il peut également masquer XAML les fichiers de vos assemblys en renommant les références de classe, en supprimant les commentaires, les espaces, les nouvelles lignes, etc.

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