第二章 bak文件带来的灾难
/**
作者 :慈勤强
Email:cqq1978@Gmail.com
最后修改:2004-10-03
**/
一日,在网上与一朋友闲聊,朋友是做网站开发的,以前也与其讨论过技术方面的问题,
只是好久没有在网上见到了,就好像人间蒸发了一样。
“Steven,最近忙些什么呢?”,朋友先问到。
“没什么,在家下岗待业呢,呵呵”,我答道。
“哦,那正好,我们最近刚刚完成了一个政府部门的信息系统,现在正处于试运行阶段,
你看看,给点意见,^-^”,朋友回答道。
“你这家伙,我都下岗了,你也不安慰一下,呵呵”
“你还怕找不到工作呀,^-^”
“呵呵,那好,不过别忘记请客啊....”
......
一阵调侃之后,朋友把网址发了过来。
于是,我打开这个网站一看,很清新的一个网站,看起来简单但不失实用,朴素但不失
悦目,挺不错的。再看一下,这是一个用Asp编写的动态网站,那猜想数据库应该是SQL Server
的吧。
“不错啊,这不是挺好的吗?”我又回了朋友一句。
“还行吧,过两天就要验收了,^-^”
“哦,那你们项目组几个写程序的人啊?”
“3个人,做了三个月呢”,听得出来,他们还是倾注了不少的精力的。
“哦,那你们用什么开发工具,如何进行版本控制呀?”,我是比较关注项目过程的。
“嗨,不怕你笑话,我们根本就没有进行什么版本控制,每个人负责几个栏目,到时候
一拼就可以了。 我们就用Editplus开发asp。”
这么大个系统,竟然连基本的版本控制都没有,真是不可思议,也不知道他们是怎么
接到这个政府部门的项目的?
我暗自心想,突然想起了Editplus,这是一个非常小巧,实用的文本编辑器,我也一直
用它。可是对于Editplus,默认的情况下,它都会在当前目录下生成一个当前文件的备份,
比如你在写一个member.asp的程序,保存的时候,Editplus会自动生成一个备份文件,
member.asp.bak。所以在写完程序,往外发布的时候,如果没有完全删除这些备份文件,那么
隐患则是巨大的。
他们不会存在这个问题吧,我心想。
我边想,边顺手在一个正在访问的文件News.asp文件后面加上一个.bak,也就是我访问
的文件变成了http://网址/News.asp.bak, 回车一看,果不其然,这个文件的源代码
就显示了出来,部分代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="include/conn.asp" -->
<!--#include file="include/function.asp" -->
<%
这里是他们的asp源代码
%>
一看,就知道conn.asp是连接数据库的文件,那就看看他们用的什么数据库吧,访问
http://网址/include/conn.asp.bak,结果如下:
Call ConnectSQL()
Sub ConnectSQL()
Dim strSqlServer,strUserName,strPassword,strDatabase
Dim strConn
strSqlServer = "210.51.*.*"
strUserName = "sa"
strPassword = "!K)^$XN)*723L&%$fg6%^k"
strDatabase = "ZhenJin"
strConn = "Driver={SQL Server};Server=" + strSqlServer + ";UID=" + strUsername
strConn = strConn + ";pwd=" + strPassword + ";Database=" + strDatabase
Set objConn = Server.CreateObject("ADODB.CONNECTION")
objConn.Open strConn
End Sub
通过这个文件,可以看出来,他们真的用的Sql Server数据库,而且连接用户是SA,这可是
Sql Server的最高权限用户了,相当于系统的管理员权限。
看到这里,我就不忍心再往下看了,急忙跟朋友说明问题。
“你们写完程序,Editplus生成的bak文件怎么不删除呢?呵呵”,我问到。
“哦?不会存在这种低级问题吧,我做的都删除了啊?”,朋友吃惊的回答到。
“那其他人写的呢?你们系统做完了,不会连自己都没有测试吧?”
“哦,那可能是别人没有注意吧,我们只是进行了简单的功能测试,时间太紧了”
..........
是啊,时间太紧了,给我的感觉是现在的项目没有一个时间不紧的。现在好多网络公司作出来的
项目甚至连自己都没有进行很好的QA测试,就拿出来给客户了,客户发现问题,再提出来,他们再改。
实际上从长远来讲,这样是得不偿失的。