silverlight代码需要保护吗?

silverlight代码需要保护吗?,silverlight,obfuscation,Silverlight,Obfuscation,我不太明白Silverlight代码在浏览器中是如何工作的。程序集是否已下载到客户端计算机?是否有可能使用Reflector或类似工具对代码进行反编译?如果是这样的话,有哪些选项可以保护代码?.net模糊处理程序与Silverlight一起工作吗?每当您在web浏览器中时,所有客户端代码都会下载到计算机上,并可供用户检查。这适用于Javascript、Flash和Silverlight 如果您有绝对必须隐藏的专有代码,那么您需要将其放在服务器上,并公开客户端可以调用的API,以向用户显示信息。放

我不太明白Silverlight代码在浏览器中是如何工作的。程序集是否已下载到客户端计算机?是否有可能使用Reflector或类似工具对代码进行反编译?如果是这样的话,有哪些选项可以保护代码?.net模糊处理程序与Silverlight一起工作吗?

每当您在web浏览器中时,所有客户端代码都会下载到计算机上,并可供用户检查。这适用于Javascript、Flash和Silverlight


如果您有绝对必须隐藏的专有代码,那么您需要将其放在服务器上,并公开客户端可以调用的API,以向用户显示信息。

放置pragma(无缓存)将阻止.xap存储在计算机上,相反,它将由Silverlight插件流式传输。没有pragma,.xap文件存储在临时internet文件中

将应用程序放在https页面上将进一步保护.xap的传输


如果可能,需要身份验证才能查看网页/.xap文件(感谢Joel)

如果您想查看silverlight应用程序中的代码有多容易,只需运行SilverlightSpy即可。只要安装了,您就可以查看(与应用程序交互时)所有源代码,包括xaml文件


由于代码确实会下载到客户端(甚至不会工作,因为它们可能会点击URL),因此您需要通过在服务器上保留重要的逻辑来保护代码

如果您担心有人会窃取您的知识产权,而法律还不够,那么您需要混淆您的代码。但是我不认为这是一种保护,而是对临时逆向工程的一种威慑。

要查看Silverlight应用程序,客户端下载一个.xap文件,其中包含dll和一个配置xml以及可选资源。dll包含在客户端计算机的Silverlight运行时中运行的已编译c#代码。Silverlight运行时基本上是完整.net运行时的子集。所以关键是用户在dll中获取代码,然后可以使用工具获取原始源代码。所以你最多只能做模糊处理。仍然适用于不应作为选项的非常关键的代码。如果需要,您可以使用其他方式(WCF或其他Web服务隐藏代码的某些部分)


是的,SL应用程序可以进行模糊处理。

是的,Silverlight xap文件只是包含程序集的zip文件,因此它们确实需要通过模糊处理进行保护。试一试-它直接混淆xap文件,还可以通过重命名类引用、剥离注释、空格、换行符等混淆程序集中的XAML文件

黑客仍然可以手动下载.xap,因为网页必须明确说明资源的位置。