3

我想知道隐藏我们 Silverlight 代码的任何有效方法。我知道有一些混淆器可用,但看起来人们也可以破解它。有人在这方面取得了成功吗?

4

6 回答 6

4

您真的无法隐藏任何传输给客户端的内容。如果人们想弄清楚,他们会的。

您需要将任何专有代码放在客户端机器无法访问的后端。

于 2008-09-22T18:04:00.947 回答
4

托管 silverlight 应用程序的页面上的 Pragma No-Cache 将阻止浏览器缓存 xap,而是通过从 Web 服务器流式传输来读取它。这将使窥视者更难获得 xap。混淆会使事情变得更加困难。

还要确保应用程序托管在 https 中,在主应用程序之外进行身份验证。这样,xap 流在下行过程中被编码。

于 2008-09-22T20:36:56.743 回答
2

不可以。客户端浏览器必须能够读取代码,因此它是可破解的。

于 2008-09-22T16:03:44.513 回答
1

这是一篇关于如何混淆 xap 文件的简短文章

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

于 2010-09-16T08:31:04.207 回答
1

您可以通过在执行期间下载应用程序的混淆片段(例如使用 MEF)来使潜在黑客的工作复杂化。不用说,如果您的应用程序足够大,这样可以加快启动时间而不是妨碍用户体验,这很有趣。

它不会阻止勇敢的黑客获取您的代码(目前没有任何方法可以阻止这一点,因为 Silverlight 插件必须能够执行它),但是这种技巧会使他的任务变得非常复杂。

阻止浏览器缓存 XAP 是没有用的,就像使用 HTTPS 一样,因为攻击者使用像 firebug 这样复杂的东西来获取 XAP 比在浏览器缓存中查找它或使用中间人攻击要容易得多。

我想如果你有很多动力,你可以:

  • 混淆每个程序集
  • 使用动态加载的 XAP
  • 使用由 web 服务发送的动态生成的密钥加密动态加载的 XAP 服务器端并在客户端解密它(不在同一个请求中。并且不要重用密钥。)

它不会阻止攻击者获取您的代码,但他必须分析您的初始(混淆)xap 以了解解密代码,获取密钥,获取加密(也混淆)动态加载的 XAP,解密它,然后管理去混淆它,然后了解它是如何将自己插入应用程序的。它与使用 HTTPS 不同,因为这里的加密和解密过程是在应用程序中完成的,因此像 firebug 或 fiddler 这样的工具变得毫无用处。

下摆。没有什么可以阻止任何人阅读您的代码。但是你可以让它不值得他花时间。您不必在这里使用所有想法,我相信您可以找到其他想法,但请确保实施这些措施也值得您花时间。

无论哪种方式,写这个都很有趣:p

于 2010-10-11T14:13:41.370 回答
0

你不能隐藏(至少不是不重要的)XAP 文件。但是你可以混淆它们。混淆不是一个明确的答案,但它是一个开始并且可以提供很好的保护。

于 2010-10-11T11:23:24.400 回答