Question

Je me demande quel moyen efficace de cacher notre code Silverlight. Je sais qu'il y a des obscurcissements disponibles, mais il semble que les gens peuvent aussi pirater ça. Quelqu'un a-t-il eu du succès sur ce front?

Était-ce utile?

La solution

Pragma No-Cache sur la page hébergeant l’application silverlight empêchera le navigateur de mettre en cache xap, mais le lira en streaming à partir du serveur Web. Cela rendra plus difficile pour les peeps d'obtenir le xap. L'obscurcissement rendra la tâche plus difficile encore.

Assurez-vous également que l'application est hébergée dans https, que l'authentification ait lieu en dehors de l'application principale. De cette façon, le flux xap est codé en descendant.

Autres conseils

Vous ne pouvez vraiment rien cacher qui soit transmis au client. Si les gens veulent comprendre, ils le feront.

Vous devez insérer dans votre back-end un code propriétaire auquel les ordinateurs clients ne peuvent accéder.

Non. Le navigateur du client doit pouvoir lire le code, il est donc hackable.

Voici un court article sur la manière de masquer un fichier xap

http://www.rudigrobler.net/Blog/obfuscating-silverlight

Vous pouvez compliquer le travail d'un pirate informatique potentiel en téléchargeant des fragments obfusqués de votre application lors de son exécution, en utilisant, par exemple, MEF. Inutile de dire que c’est intéressant si votre application est suffisamment grosse pour que cette astuce accélère le temps de démarrage plutôt que de gêner l’expérience de l’utilisateur.

Cela n’empêchera pas un hacker valeureux d’obtenir votre code (aucune méthode ne peut l’empêcher, car le plugin Silverlight doit pouvoir l’exécuter), mais l’astuce compliquera grandement sa tâche.

empêcher le navigateur de mettre en cache le XAP est inutile, comme utiliser HTTPS, car il est beaucoup plus facile pour l'attaquant d'utiliser quelque chose d'aussi compliqué que firebug pour obtenir le XAP que de le rechercher dans le cache du navigateur ou d'utiliser un homme au milieu Attaque.

J'imagine que si vous aviez beaucoup de motivation, vous pourriez:

  • masquer tous les assemblages
  • utiliser des XAP chargés dynamiques
  • chiffrez le côté dynamique du serveur XAP chargé et déchiffrez-le côté client à l'aide d'une clé générée dynamiquement envoyée par un service Web (pas dans la même demande. Ne réutilisez pas la clé.)

Cela n'empêchera pas l'attaquant de récupérer votre code, mais il devra analyser votre xap initial (obfusqué) pour comprendre le code de déchiffrement, obtenir la clé, obtenir le XAP dynamique chargé chiffré (également masqué), le déchiffrer. , puis réussissez à le dissimuler, puis à comprendre comment il se branche à l’application. Ce n’est pas la même chose que d’utiliser HTTPS, car ici le processus de cryptage et de décryptage est effectué dans l’application, de sorte que des outils tels que firebug ou fiddler deviennent inutiles.

Hem. Rien ne peut empêcher quiconque de lire votre code. MAIS vous pouvez le faire ne vaut pas son temps. Vous n'êtes pas obligé d'utiliser toutes les idées ici et je suis sûr que vous pouvez en trouver d'autres, mais assurez-vous que la mise en œuvre de telles mesures vaut également la peine.

Quoi qu’il en soit, c’était plutôt drôle d’écrire ceci: p

Vous ne pouvez pas masquer (du moins de manière non triviale) les fichiers XAP. Mais vous pouvez les obscurcir. L'obfuscation n'est pas une réponse définitive, mais c'est un début et peut offrir une très bonne protection.

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