我不太明白Silverlight代码在浏览器内的运作方式。这些程序集会下载到客户端机器吗?有没有可能使用反编译器或类似工具来反编译代码?如果是这样,有什么选项可以保护代码?.net混淆器是否适用于Silverlight?
银光代码需要保护吗?
原标题:
最佳回答
为了查看Silverlight应用程序,客户端需要下载一个包含dll和一个配置xml和可选资源的.xap文件。dll包含编译好的c#代码,在客户端Silverlight运行时中运行。Silverlight运行时基本上是完整.net运行时的一个子集。因此,用户可以在dll中获取代码,然后使用工具获取原始源代码。因此,最多只能进行混淆。但对于非常关键的代码,这不应该是选项。如果需要,可以使用其他方法(WCF或其他Web服务来隐藏部分代码)来满足您的需求。
问题回答
无论何时你在网络浏览器中,所有客户端代码都会被下载到计算机上,并可以被用户检查。这适用于JavaScript、Flash和Silverlight。
如果您有必须要隐藏的专有代码,则需要将其放置在服务器上,并暴露一个API,供客户端调用以向用户显示信息。
如果您担心有人会窃取您的知识产权并且法律不足以解决问题,那么您需要混淆您的代码。但我不会称之为保护,而是对普通逆向工程师的威慑。
加入“Pragma-No Cache”的指令将阻止.xap文件被储存在机器上,而是通过Silverlight插件进行流式传输。如果没有指令,.xap文件将被储存在暂存的互联网文件中。
将应用程序放在https页面上将进一步保护.xap的传输。
如可能,请要求身份验证才能查看网页/ .xap 文件(谢谢 Joel)
Emrah, (艾姆拉)
是的,对于SL应用程序,混淆是可能的。
是的,Silverlight xap文件实质上就是包含程序集的zip文件,因此它们需要通过混淆进行保护。可以试试Crypto Obfuscator - 它直接混淆xap文件,还可以通过重命名类引用、去除注释、空格、换行符等方式混淆程序集中的XAML文件。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding