温柔网

 找回密码
 注册

查看: 530|回复: 0

使用组件来保护你的ASP代码

[复制链接]
发表于 2003-12-16 22:48:38 | 显示全部楼层 |阅读模式
使用组件来保护你的ASP代码

--------------------------------------------------------------------------------

   以前大家谈了很多有关打开数据库连接安全的问题,现在我再提出一种思路
   使用ActiveX DLL来保护你的代码。(既可以不用为使用共享的加密软件而发愁,
   更重要的是可以自己来顶制加密方法了,享受一下“一切尽在掌握之中”的感觉。
   同时也为了让大家都自己动手来做出自己的组件来。)
   
   ActiveX DLLs是被编译过的机器代码,如果没有源项目文件的话是不能够被编译的。
   这个技术使得开发者有可能开发出公共的自动化程序,并且把它们作为shareware版本的程序发布
   这个大家在chinaasp中销售的一些组件中就可以看到这个技术的运用。
   如果你想保护你的ASP中的一些代码的安全,例如你不想让别人看见你是使用什么连接到
   数据库的,或者不想让别人看到你的某个比较重要的函数是怎么完成的,或者某个重要的
   流程(cAkk可以参阅),你就可以通过不断的开发你自己的组件,这可是个dll文件,就是别人得到了
   这个dll文件,一时半会也根本不能够得到你要保护的重要信息。而且你自己开发的这些组件
   给你的程序带来了源源不断的新功能。
   
   下面就举一个很常用的,大家都很关心的有关如何保密打开数据库的过程的例子。
   例子很简单,就是在一个下拉框中显示数据库中某个字段的内容。
   整个过程如下:
   1。新建一个VB6的ActiveX DLL项目
   2。在属性窗口中,命名你的库模块和项目文件。例子中为keiths_lookup项目名和lookup模块名.
     这写名字是你在ASP中将引用到的dll函数名(在ASP中的对象名将为keiths_lookup.lookup)。
   3.将项目和库模块使用同样的名字存盘(当然了,后缀是不能够一样的哦)。
   4。从VB6中的项目菜单中选择References .然后选中Microsoft ActiveX data objects 2.0 library, Microsoft
       ActiveX Data Objects Recordset 2.0 library.  
   文件的代码如下:
     Public Function html_combo(comboname As String, Lookup_field As String) As String   
         Dim outstring As String
         Dim conn As ADODB.Connection
         Dim rst As ADODB.Recordset
         Dim sqlstring As String           
   
         Set conn = CreateObject("ADODB.Connection")
         Set rst = CreateObject("ADODB.Recordset")
           '下面这些数据库中的字段名只是为这个例子设的,你完全可以根据自己的需要修改代码     
         Sqlstring = "SELECT [Lookup_Description],[Lookup_Key] FROM _
               [Lookup_Table] WHERE [Lookup_Field] = '" & Lookup_Field & "'"
         
       '在这可输入你连接数据库的用户名和密码,现在就算客户端看见了ASP源代码
       '他也不可能知道你使用的是什么密码了,呵呵
       conn.Open  "DSN=Sumnet;UID=WD=.;"
       rst.Open sqlstring, conn, 3, 3
   
         If Not rst.EOF Then
                 rst.MoveFirst
                 outstring = "<Select name=&#39;" & comboname & "&#39;>"
                 Do While Not rst.EOF
                 outstring = outstring & "<Option Value=&#39;" &  rst.Fields("lookup_key") & "&#39;>" & _
                     rst.Fields("lookup_description") & "</Option> "
                       rst.MoveNext
                 Loop
         End If
        
         outstring = outstring & "</Select>"
         html_combo = outstring
   
         rst.Close
         conn.Close     
   End Function
   代码结束,呵呵,基本上没什么技术难点把,现在保存你的项目并且开始编译工作。
   1。打开Visual Studio 6中带的Package Deployment Wizard程序。
   2。选择你刚才建立的ActiveX项目文件。
   3。选择Package  
   4。选择你要打包的脚本或使用默认脚本
   5。选择标准安装
   6。选择一个放置你安装文件的目录
   7。选择single cab.  
   8。其他均默认,然后单击下一步
   9。现在安装程序完成后,把它拿到你的IIS服务器上安装把。
   
   下面给出如何调用你自己做的这个组件的代码:
     <%@ Language="VBSCRIPT" %>
     <%
     Set look = Server.CreateObject("keiths_lookup.lookup")
     %>                           
     <HTML>
     <BODY>
     <%=look.html_combo("State","States")%>
     <BR>
     <%=look.html_combo("osition","ositions")%>
     <BR>
     <%=look.html_combo("Age_group","Age_Groups")%>                             
     </BODY>
     </HTML>
   你看,asp如此的简单,谁看见了源文件你都不用担心了,可以看到,
   使用ActiveX DLL技术可以很好的保护你的重要的代码,你需要安全的部分,
   但我可不希望以后大家都牢牢地看住自己的代码不愿意公开了,毕竟
   国内的软件行业还远远落后,需要大家齐心协力才能够一起进步呀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|温柔网 ( 浙ICP备13033583号-8 )

GMT+8, 2024-11-21 21:10 , Processed in 0.037029 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表