社区
ASP
帖子详情
ASP的安全?!分数无限。
mosane
2002-01-10 06:45:33
大家讨论一下ASP的安全性,分数无限,精彩越多分数越多!!
主要有:
1、ASP查看原码
2、ASP防止查看原码
3、数据库下载的防止
4、使ASP系统崩溃
5、ASP系统崩溃的防止
请尽量详细说明方法,如有涉及相关工具,请留下下载地址,或私下指教。
xumsa@163.net QQ:1314300.
...全文
225
28
打赏
收藏
ASP的安全?!分数无限。
大家讨论一下ASP的安全性,分数无限,精彩越多分数越多!! 主要有: 1、ASP查看原码 2、ASP防止查看原码 3、数据库下载的防止 4、使ASP系统崩溃 5、ASP系统崩溃的防止 请尽量详细说明方法,如有涉及相关工具,请留下下载地址,或私下指教。 xumsa@163.net QQ:1314300.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hwstu
2002-01-21
打赏
举报
回复
asp的安全隐患太多,这个在linux中也有,这个其实是win系列本身的漏洞,跟asp本身没有太大的关系。所以很多时候要保证自己编码的好习惯。养成良好的风格。
当然很多时候还有有深究的习惯,就象上文中
ASP+Access的安全隐患
ASP+Access解决方案的主要安全隐患来自Access数据库的安全性,其次在于ASP网页设计过程中的安全漏洞。
1.Access数据库的存储隐患
在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。例 如:对于网上书店的Access数据库,人们一般命名为book.mdb、store.mdb等,而存储的路径一般为“URL/database”或干
脆放在根目录(“URL/”)下。这样,只要在浏览器地址栏中敲入地址:“URL/database/store.mdb”,就可以轻易地把 store.mdb下载到本地的机器中。没有任何安全性可言了。
对于这个问题我们如何来理解呢?
第一、有人提出了防止mdb被下载的方法,就是把mdb改一个很很难猜测的名字,比如22xxr44.mdb等等,
回答,其实这样不是很可靠的,有时候可以通过很多手段获取这个文件名字,比如缓冲溢出等等,当然如果可以通过fso的问题知道这个目录。
第二、有人建议把mdb的扩展名该为.asp这样可以防止人下载,其实这个就是本身没有很好的了解asp本身,比如以前的www.aspsky.net www.asph.net都有很多情况可以进去的。其中有一个金光网,它里面好象有个数据库就改为.asp了,其实这个一样可以下载,因为里面<% %>不会被执行
第三、还是沿着这个思路可以把一个asp文件写到库中的某个ole字段当中,然后把名字改为.asp解决问题
第四,现在这些讲解还远远不够,关于asp安全问题,建议大家看看飞鸟写的东西,写得非常好,和非常的全面
MeXP
2002-01-21
打赏
举报
回复
这个问题我还是引用一篇文章,希望作者别告我盗版。只为说明问题,本人不为文章加以褒贬。
ASP+Access的安全隐患及对策
随着Internet的发展,Web技术日新月异。继通用网关接口(CGI)之后,“ASP”(Active Server Pages)作为一种典型的
服务器端网页设计技术,被广泛地应用在网上银行、电子商务、搜索引擎等各种互联网应用中。同时Access数据库作为微
软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。因此ASP+
Access成为许多中小型网上应用系统的首选方案。但ASP+Access解决方案在为我们带来便捷的同时,也带来了不容忽视的
安全问题。
ASP+Access的安全隐患
ASP+Access解决方案的主要安全隐患来自Access数据库的安全性,其次在于ASP网页设计过程中的安全漏洞。
1.Access数据库的存储隐患
在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。例
如:对于网上书店的Access数据库,人们一般命名为book.mdb、store.mdb等,而存储的路径一般为“URL/database”或干
脆放在根目录(“URL/”)下。这样,只要在浏览器地址栏中敲入地址:“URL/database/store.mdb”,就可以轻易地把
store.mdb下载到本地的机器中。
2.Access数据库的解密隐患
由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密
码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&H42”开始的区域内。由于异或操作
的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地
得到Access数据库的密码。基于这种原理,可以很容易地编制出解密程序。
由此可见,无论是否设置了数据库密码,只要数据库被下载,其信息就没有任何安全性可言了。
3.源代码的安全隐患
由于ASP程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而
造成ASP应用程序源代码的泄露。
4.程序设计中的安全隐患
ASP代码利用表单(form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措
施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“……page.asp?x=1”,即可不经过表
单页面直接进入满足“x=1”条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。
提高数据库的安全性
由于Access数据库加密机制过于简单,因此,如何有效地防止Access数据库被下载,就成了提高ASP+Access解决方案安全
性的重中之重。
1.非常规命名法
防止数据库被找到的简便方法是为Access数据库文件起一个复杂的非常规名字,并把它存放在多层目录下。例如,对于网
上书店的数据库文件,不要简单地命名为“book.mdb”或“store.mdb”,而是要起个非常规的名字,例如:
faq19jhsvzbal.mdb,再把它放在如./akkjj16t/kjhgb661/acd/avccx55 之类的深层目录下。这样,对于一些通过猜的方式
得到Access数据库文件名的非法访问方法起到了有效的阻止作用。
2.使用ODBC数据源
在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程序中,否则,数据库名将随ASP源代码的失密而一
同失密。例如:
DBPath = Server.MapPath(“./akkjj16t/
kjhgb661/acd/avccx55/faq19jhsvzbal.mdb ”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,数据库也很容易被下载下来。如果使用ODBC数据
源,就不会存在这样的问题了:
conn.open “ODBC-DSN名”
对ASP页面进行加密
为有效地防止ASP源代码泄露,可以对ASP页面进行加密。一般有两种方法对ASP页面进行加密。一种是使用组件技术将编程
逻辑封装入DLL之中;另一种是使用微软的Script Encoder对ASP页面进行加密。笔者认为,使用组件技术存在的主要问题
是每段代码均需组件化,操作比较烦琐,工作量较大;而使用Script Encoder对ASP页面进行加密,操作简单、收效良好。
Script Encoder方法具有许多优点:
1.HTML仍具有很好的可编辑性。Script Encoder只加密在HTML页面中嵌入的ASP代码,其他部分仍保持不变,这就使得我们
仍然可以使用FrontPage或Dreamweaver等常用网页编辑工具对HTML部分进行修改、完善,只是不能对ASP加密部分进行修
改,否则将导致文件失效。
2.操作简单。只要掌握几个命令行参数即可。Script Encoder的运行程序是screnc.exe,其使用方法如下:
screnc [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
其中的参数含义如下:
s:屏蔽屏幕输出;
f:指定输出文件是否覆盖同名输入文件;
xl:是否在.asp文件的顶部添加@Language指令;
l:defLanguag指定缺省的脚本语言;
e:defExtension 指定待加密文件的扩展名。
3.可以批量加密文件。使用Script Encoder可以对当前目录中的所有的ASP 文件进行加密,并把加密后的文件统一输出到
相应的目录中。例如:
screnc *.asp c:\temp
4. Script Encoder是免费软件。该加密软件可以从微软网站下载:
http://msdn.microsoft.com/scripting/vbscript/download/x86/sce10en.exe。下载后,运行安装即可。
利用Session对象进行注册验证
为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。Session对象最大的优点是
可以把某用户的信息保留下来,让后续的网页读取。例如,要设计如图1所示的注册页面。
图1 注册页面
设计要求用户注册成功后系统启动hrmis.asp?page=1页面。如果不采用Session对象进行注册验证,则用户在浏览器中敲入
“URL/hrmis.asp?page=1”即可绕过注册界面,直接进入系统。利用Session对象可以有效阻止这一情况的发生。相关的程
序代码如下:
< %
读取用户输入的账号和密码
UserID = Request(“UserID”)
Password = Request(“Password”)
检查UserID 及Password 是否正确(实际程序可能会比较复杂)
If UserID < >“hrmis” Or Password < >
“password” Then
Response.Write “账号错误!”
Response.End
End If
将Session 对象设置为通过验证状态
Session(“Passed”) = True
% >
进入应用程序后,首先进行验证:
< %
如果未通过验证,返回Login状态
If Not Session(“Passed”) Then
Response.Redirect “Login.asp”
End If
% >
其他的请各位发言
gjf888
2002-01-21
打赏
举报
回复
没有绝对的安全,
只有的安全时间周期,
当周期一过什么程序都一样不安全,
现在的科学进步,程序员的思维也在进步,
所以安全就在于思维的先进!
mosane
2002-01-21
打赏
举报
回复
我再 U P !!
mosane
2002-01-16
打赏
举报
回复
万一泄露了就不好说了。
还是做到保险为好。
reinly
2002-01-16
打赏
举报
回复
我想是完全没有必要去杞人忧天的
没有人回知道你的数据库文件是什么名字
他门怎么可能下在到数据库文件呢??
zzxcom
2002-01-16
打赏
举报
回复
if asp didn't come from vb then
if vb didn't design by MS then
if asp don't depend on IIS then
if IIS were not a part of NT os then
the asp's security = true
end if
mosane
2002-01-15
打赏
举报
回复
哎~~~~~大家对安全竟然漠不关心。只会辛辛苦苦地埋头苦干么?
mosane
2002-01-13
打赏
举报
回复
up!
Soft21
2002-01-12
打赏
举报
回复
大家好啊,哈哈,这里还是有高手的嘛
BrightEye
2002-01-10
打赏
举报
回复
up,把数据库放置在web不能访问的地方还可以操作数据库吗?
talentboy
2002-01-10
打赏
举报
回复
ASP防止查看原码的问题在NT4的时候有的,但是打了补丁和用了win2000后就没有听说过能查看原码的问题。
防止别人看核心代码的主要解决手段是把asp源码编成组件
防止别人下载数据库,那么就使用sqlserver或者将数据库文件放置在web不能访问的地方
使ASP系统崩溃(你想干嘛),用一个死循环不就行了
防止崩溃的方法是改善你的编程方法、算法等。
jediknight
2002-01-10
打赏
举报
回复
我觉得服务器的原因多一点
mosane
2002-01-10
打赏
举报
回复
Access数据库的问题我是这样做的:一是改为.asp,二是用密码打开,三是在数据库里增加一个notdown 的字段.
我也是用这种方法,请详细点给大家介绍好吗?
我还想学多点呢。。呵呵~~~~
julyclyde
2002-01-10
打赏
举报
回复
qisanyou(七三有)错误
ASP不是脚本语言
希偌
2002-01-10
打赏
举报
回复
对啊,安全性问题一直困扰着asp!
qisanyou
2002-01-10
打赏
举报
回复
我说说我的看法:
ASP有优点也有缺点,它本身不过是一种脚本语言,是需要IIS解释的,所以它的安全性存在问题是和系统分不开的,微软也看到这个问题,所以现在ASP.net就把页面代码和程序代码分开啦,有空应该看看这方面的书.
Access数据库的问题我是这样做的:一是改为.asp,二是用密码打开,三是在数据库里增加一个notdown 的字段.
不过我是这样想:如果是高手的话,也没空来当看那些狗屁代码,如果不是高手的话,又怎么看得到.呵呵.......
mosane
2002-01-10
打赏
举报
回复
那就是用相对路径来访问的?
消耗服务器资源也够惨了,:(
julyclyde
2002-01-10
打赏
举报
回复
不是虚拟目录的地方就是“web不能访问的地方”
死循环在asp里只是消耗服务器资源而已,不会死机
mosane
2002-01-10
打赏
举报
回复
talentboy() :
请问什么地方是web不能访问的地方。
死循环确实是个很可怕的东西,大家可谨防留下这样的漏洞。
talentboy能举个实例吗?
谢谢talentboy。
加载更多回复(8)
基于
ASP
的新视点
ASP
在线考试系统.zip
基于
ASP
的新视点
ASP
在线考试系统.zip
基于
ASP
的看你能坚持多久JS+HTML+
ASP
.zip
基于
ASP
的看你能坚持多久JS+HTML+
ASP
.zip
全功能使用后台
无限
制拍卖系统
用户名和密码都是admin 后台
无限
制,全功能使用
基于
ASP
的ISchool随机抽题
ASP
考试系统 v3.7.1.zip
基于
ASP
的ISchool随机抽题
ASP
考试系统 v3.7.1.zip
基于
ASP
的驾校考试系统.zip
基于
ASP
的驾校考试系统.zip
ASP
28,406
社区成员
356,946
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章