为您的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 &qu