首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

为您的ASP程序加八锁:使用组件来保护你的ASP代码,该如何处理

2012-02-29 
为您的ASP程序加八锁:使用组件来保护你的ASP代码以前大家谈了很多有关打开数据库连接安全的问题,现在我再

为您的ASP程序加八锁:使用组件来保护你的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=;PWD=.; "
        rst.Open   sqlstring,   conn,   3,   3

            If   Not   rst.EOF   Then
                            rst.MoveFirst
                            outstring   =   " <Select   name= ' "   &   comboname   &   " '> "
                            Do   While   Not   rst.EOF
                            outstring   =   outstring   &   " <Option   Value= ' "   &     rst.Fields( "lookup_key ")   &   " '> "   &   _
                                    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( "Position ", "Positions ")%>
    <BR>
    <%=look.html_combo( "Age_group ", "Age_Groups ")%>                                                        
    </BODY>
    </HTML>

你看,asp如此的简单,谁看见了源文件你都不用担心了,可以看到,
使用ActiveX   DLL技术可以很好的保护你的重要的代码,你需要安全的部分,
但我可不希望以后大家都牢牢地看住自己的代码不愿意公开了,毕竟
国内的软件行业还远远落后,需要大家齐心协力才能够一起进步呀。


转http://www.chinaitpower.com/A/2001-11-09/4317.html


[解决办法]
sf
[解决办法]
学习
[解决办法]
xx
[解决办法]
接分!
[解决办法]
感谢楼主的分享
[解决办法]
我可以告诉你..
可以反编译..
具体怎么编译我不知道.
www.happychina.cn是我的网站.
但是,后来我发布了商业版.核心程序用了DLL...最后还是被人反编译,原代码,网络上都被散播
[解决办法]
当然是真的,所以搞的我极度郁闷.
最好的办法就是编译成DLL.然后把DLL文件放到C:\WINNT\SYSTEM32下面,然后注册,这样对方就不会那么容易下载下来,更没办法反编译了...
[解决办法]
自定义的组件需要注册啊,并不是所有的用户都会注册的
[解决办法]
实际意义不是很大
[解决办法]
任何东西都不敢保证绝对安全
------解决方案--------------------


还不错。

安全都是相对的

[解决办法]
那大家搜搜ASP风火轮,这个可以直接把ASP代码转成VB下的DLL代码,只需要进行一次编译就可以了
[解决办法]
所有客户端都要安装你的CAB包才行呢
这样就根本体现不出来B/S结构软件的优势了
实际意义不大
建议还是封装成DLL
这样所谓的 "反编译 "风险要小得多

热点排行