在.net平台上,代码以中间语言的形式运行,它是.net众多优势的基础。但在独立桌面应用中,它给源代码的安全带来了威胁。本文探讨产生这个问题的原因,分析可能的解决办法。
在visual studio.net(vs.net)体系中,vb、visual c++以及c#之类的编译器把源程序编译成msil。msil即microsoft intermediate language,或microsoft中间语言,它在执行之前被即时(just-in-time compile,jit)编译成为机器语言。但是,你可能还没有深入了解当你在vs中点击build按钮时发生了什么事情,或者你私有的源代码和信息是否在偷窥的眼光面前安然无恙、当你把il代码发布给客户时是否能够保证代码不被篡改。下面我们将深入.net的内部工作过程,探讨vb.net体系msil的特点和一些你必须关心的问题。
你必须搞清楚以下几个问题。首先,.net是为客户机/服务器系统以及web应用而设计的。软件开发正在逐渐向inte.net以及基于客户机/服务器的应用发展,许多应用不再有传统风格的界面,而是提供类似浏览器的界面。.net也同样追随着这个趋势。
第二,在桌面应用中,我们无法保护以受管理的msil形式存在的代码,如果你觉得保护知识产权(即源代码)非常重要,那么.net不适合桌面应用开发。虽然msil的承诺令人心动,虽然.net平台和clr(common language runtime)很稳定,但从安全的角度来看,对于一个独立的桌面应用来说,这一切缺乏实际意义。在.net中,作为一个vb程序员甚至是c#程序员,你只能编写受管理、不受保护的代码。
由于存在这种限制,如果你要在桌面应用中保护代码,你必须使用非受管理的c++。保护知识产权唯一真正有效的方法是:用非受管理的c++组件封装代码,然后从.net受管理代码中通过com协作接口调用它。
另外你还必须清楚的是,由于active server pages.net(asp.net)完全在服务器端运行,因此asp.net应用是安全的。实际上,这正是.net最理想的境界——在受保护的服务器上运行代码,让代码远离任何想要研究它的人。asp.net把web开发简化到了难以置信的程度,而visual basic.net正是编写asp.net应用的优秀工具。
掌握vb.net需要经过艰苦的学习,而全面接受.net更是一个缓慢的过程。从vb6迁移到vb.net并非轻而易举,在把vb6应用移植到vb.net之前的时间里,你仍旧需要提供对vb6应用的支持。在未来很长的时间内,许多开发者仍将使用vb6。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器