使用组件来保护你的ASP代码
发布时间:2008-06-03 13:47:00
以前大家谈了很多有关打开数据库连接安全的问题,现在我再提出一种思路:使用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技术可以很好的保护你的重要的代码,你需要安全的部分,但我可不希望以后大家都牢牢地看住自己的代码不愿意公开了,毕竟国内的软件行业还远远落后,需要大家齐心协力才能够一起进步呀。
猜你喜欢
- ajax编程获取Google的PageRank3(PR值)及所在目录,想给你的站增加Google PR查询的功能吗?如果你不会就看看本文吧,
- 今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错输入select * from
- 从今天开始起,基督山将和大家一起进入ASP.net 诸多程序的学习中,老实说,.net到底是法宝还是垃圾,我们拭目以待。有任何问题,联络基督
- 从接触互联网开始,一直在关注每个网站页面浏览速度,不管大小国内外网站,而且每个用户的浏览时间都不一样,从而了解用户在浏览页面上时间体验尺度的
- 我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。在遇到严重性能问题时,一般都有这么几种可能:1、索引没有建好;2、sql写
- Microsoft JET Database Engine 错误 '80040e2
- 讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么。在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面
- 一、偏好资源的积累利用DreamWeaver 4制作网页会应用到许多各种类型的要素,比如色彩、图片、模板、脚本等。利用站点资源面板将这些东东
- 看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目
- 死锁是指在某组资源中,两个或两个以上的线程在执行过程中,在争夺某一资源时而造成互相等待的现象,若无外力的作用下,它们都将无法推进下去,死时就
- Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型,但有时候,自动转换也会造成一些数据类型不匹配的错误.这时,可使用转换函
- CSS命名规范一.文件命名规范全局样式:global.css;框架布局:layout.css;字体样式:font.css;链接样式:link
- 使用了application及结合数据库来保存统计数据 <html><head><title>
- 如何在ADO中客户端利用好缓存技术?具体应用见下例:global.asa< !--METADATA TYPE=&q
- 首先,大家先去下载一份dvbbs.php beta1的代码,解压后先抛开php代码,找出你的mysql手册,如果没有手册那么就直接看下面的实
- Macromedia Dreamweaver MX 2004提供了更多功能强劲的可视化设计工具、应用开
- 代码如下:SELECT * FROM (SELECT TRUNC(SYSDATE, 'mm') + ROWNUM
- 确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外
- 通过XML使系统之间的数据交换变得更简单,因为它与编程语言无关,刚引入XML的概念时,是通过一个脚本或应用程序解析XML数据,将其转换为适合
- 你知道SQL Server这么庞大的企业级数据库服务器产品是如何build出来的吗?这有些相关的数据:每个build 的大小在300GB左右