Access数据库改为asp后缀名的注意事项
2007年11月05日 星期一 上午 03:47
很多编程人员在开发的时候都认为,改了mdb后缀为asp后就能防止数据库被下载,这种想法是错误的!下面的实验就是证明!
我在自己的电脑上做的测试,事先已经建立了虚拟目录xinwen,数据库文件nxnew.mdb放在了网站的data文件夹下面。
首先,将nxnews.mdb改为nxnews.asp,然后在IE地址栏输入“http://%20127.0.0.1/xinwen/data/nxnews.asp”,返回的页面是一堆乱码和数据库中的图片。
其次,右键单击该乱码页面,选择查看源文件,将弹出的记事本中的内容保存,更名为**.mdb,然后打开该文件,提示我输入密码,看来是头文件遭到了破坏。
最后,打开迅雷,然后通过迅雷下载当前页面,下载后的文件更名为**. md b,再一次进行打开操作,成功打开!数据库就这样被成功下载了!
总结:我们发现,仅仅是简单的通过更改后缀名来防止数据库被下载是有很大缺陷的。事实上即使你将扩展名改为.asp,数据库仍然可以被下载,因为这个文件里不含<%或%>等标签,所以IIS不对这个文件作任何处理,下载的数据库和原数据库完全一样!
解决方案:思路很简单,在这个文件中加入<%或%>,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了。可是如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以< %的形式存在,无效!正确的方法是将<%存入OLE对象字段里,这样我们的目的就能达到了。
下面是我从网上找到的防治Access数据库被下载的常用安全措施:
1.发挥你的想象力 修改数据库文件名
不用说,这是最最偷懒的方法,但是若攻击者通过第三方途径获得了数据库的路径),就玩完了。比如说攻击者本来只能拿到list权,结果意外看到了数据库路径,就可以冠冕堂皇地把数据库下载回去研究了。另外,数据文件通常大小都比较大,起再隐蔽的文件名都瞒不了人。故保密性为最低。
2.数据库名后缀改为ASA、ASP等
此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况
(1)二进制字段添加(具体的还不清除 )。
(2)在这个文件中加入<%或%>,II
相关文档:
<!--#include file="conn.asp"-->
<%
if request.Form("username")="" or request.form("password")="" then
response.Write("<script>alert('您好,不能为空
');location.href='index.html';</script>")
end if
%>
<%
di ......
Dim FilePath,FileName
Set ObjFileStream = Server.CreateObject("ADODB.Stream")
ObjFileStream.Type = 1
ObjFileStream.Mode = 3
ObjFileStream.open
ObjFileStream.LoadfromFile FilePath&"\"&FileName&".doc"
ObjFileStream.Position = 0
response.binarywrite  ......
前几天为制作一个网站,需要从ACCESS转至SQLSERVER,从网站上查看了很多的资料,但觉得没有一个能够全面覆盖要点的,所以我总结一下,顺便
给出一些经验。
首先如果一开始就需要制作SQLSERVER的网站,那么最好将你的爱机装上WINDOWS2000或者2003这样的SERVER版,这样的版本是支持
SQLSERVER正式 ......
ASP生成静态网页的多种方法
收藏
使用FSO生成
<%
'使用FSO生成
Set fs = CreateObject("Scripting.FileSystemObject")
NewFile=Server.MapPath("ud03/fso.htm")
'新建 ......