由于ASP
![](/icons/3495de.gif)
方便易用
![](/icons/3495dou.gif)
越来越多
![](/icons/3495de.gif)
网站WebSite后台
![](/icons/3495chengxu.gif)
都使用ASP脚本语言
![](/icons/3495dou2.gif)
但是
![](/icons/3495dou.gif)
由于ASP本身存在
![](/icons/3495yi.gif)
些安全漏洞
![](/icons/3495dou.gif)
稍不小心就会给黑客提供可乘的机
![](/icons/3495dou2.gif)
事实上
![](/icons/3495dou.gif)
安全不仅是网管
![](/icons/3495de.gif)
事
![](/icons/3495dou.gif)
编程人员也必须在某些安全细节上注意
![](/icons/3495dou.gif)
养成良好
![](/icons/3495de.gif)
安全习惯
![](/icons/3495dou.gif)
否则会给自己
![](/icons/3495de.gif)
网站WebSite带来巨大
![](/icons/3495de.gif)
安全隐患
![](/icons/3495dou2.gif)
目前
![](/icons/3495dou.gif)
大多数网站WebSite上
![](/icons/3495de.gif)
ASP
![](/icons/3495chengxu.gif)
有这样那样
![](/icons/3495de.gif)
安全漏洞
![](/icons/3495dou.gif)
但如果编写
![](/icons/3495chengxu.gif)
![](/icons/3495de.gif)
时候注意
![](/icons/3495yi.gif)
点
![](/icons/3495de.gif)
话
![](/icons/3495dou.gif)
还是可以避免
![](/icons/3495de.gif)
![](/icons/3495dou2.gif)
1、用户名和口令被破解
攻击原理:用户名和口令
![](/icons/3495dou.gif)
往往是黑客们最感兴趣
![](/icons/3495de.gif)
东西
![](/icons/3495dou.gif)
如果被通过某种方式看到源代码
![](/icons/3495dou.gif)
后果是严重
![](/icons/3495de.gif)
![](/icons/3495dou2.gif)
防范窍门技巧:涉及用户名和口令
![](/icons/3495de.gif)
![](/icons/3495chengxu.gif)
最好封装在服务器端
![](/icons/3495dou.gif)
尽量少在ASP文件里出现
![](/icons/3495dou.gif)
涉及和数据库连接
![](/icons/3495de.gif)
用户名和口令应给予最小
![](/icons/3495de.gif)
权限
![](/icons/3495dou2.gif)
出现次数多
![](/icons/3495de.gif)
用户名和口令可以写在
![](/icons/3495yi.gif)
个位置比较隐蔽
![](/icons/3495de.gif)
包含文件中
![](/icons/3495dou2.gif)
如果涉及和数据库连接
![](/icons/3495dou.gif)
在理想状态下只给它以执行存储过程
![](/icons/3495de.gif)
权限
![](/icons/3495dou.gif)
千万不要直接给予该用户修改、插入、删除记录
![](/icons/3495de.gif)
权限
![](/icons/3495dou2.gif)
2、验证被绕过
攻击原理:现在需要经过验证
![](/icons/3495de.gif)
ASP
![](/icons/3495chengxu.gif)
大多是在页面头部加
![](/icons/3495yi.gif)
个判断语句
![](/icons/3495dou.gif)
但这还不够
![](/icons/3495dou.gif)
有可能被黑客绕过验证直接进入
![](/icons/3495dou2.gif)
防范窍门技巧:需要经过验证
![](/icons/3495de.gif)
ASP页面
![](/icons/3495dou.gif)
可跟踪上
![](/icons/3495yi.gif)
个页面
![](/icons/3495de.gif)
文件名
![](/icons/3495dou.gif)
只有从上
![](/icons/3495yi.gif)
页面转进来
![](/icons/3495de.gif)
会话才能读取这个页面
![](/icons/3495dou2.gif)
3、Inc文件泄露问题
攻击原理:当存在ASP
![](/icons/3495de.gif)
主页正在制作且没有进行最后调试完成以前
![](/icons/3495dou.gif)
可以被某些搜索引擎机动追加为搜索对象
![](/icons/3495dou2.gif)
如果这时候有人利用搜索引擎对这些网页进行查找
![](/icons/3495dou.gif)
会得到有关文件
![](/icons/3495de.gif)
定位
![](/icons/3495dou.gif)
并能在浏览器中查看到数据库地点和结构
![](/icons/3495de.gif)
细节
![](/icons/3495dou.gif)
并以此揭示完整
![](/icons/3495de.gif)
源代码
![](/icons/3495dou2.gif)
防范窍门技巧:
![](/icons/3495chengxu.gif)
员应该在网页发布前对它进行彻底
![](/icons/3495de.gif)
调试;安全专家则需要加固ASP文件以便外部
![](/icons/3495de.gif)
用户不能看到它们
![](/icons/3495dou2.gif)
首先对.inc文件内容进行加密
![](/icons/3495dou.gif)
其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件
![](/icons/3495de.gif)
源代码
![](/icons/3495dou2.gif)
inc文件
![](/icons/3495de.gif)
文件名不要使用系统默认
![](/icons/3495de.gif)
或者有特殊含义容易被用户猜测到
![](/icons/3495de.gif)
名称
![](/icons/3495dou.gif)
尽量使用无规则
![](/icons/3495de.gif)
英文字母
![](/icons/3495dou2.gif)
4、自动备份被下载
攻击原理:在有些编辑ASP
![](/icons/3495chengxu.gif)
![](/icons/3495de.gif)
工具中
![](/icons/3495dou.gif)
当创建或者修改
![](/icons/3495yi.gif)
个ASP文件时
![](/icons/3495dou.gif)
编辑器自动创建
![](/icons/3495yi.gif)
个备份文件
![](/icons/3495dou.gif)
比如:UltraEdit就会备份
![](/icons/3495yi.gif)
个.bak文件
![](/icons/3495dou.gif)
如你创建或者修改了some.asp
![](/icons/3495dou.gif)
编辑器会自动生成
![](/icons/3495yi.gif)
个叫some.asp.bak文件
![](/icons/3495dou.gif)
如果你没有删除这个bak文件
![](/icons/3495dou.gif)
攻击者可以直接下载some.asp.bak文件
![](/icons/3495dou.gif)
这样some.asp
![](/icons/3495de.gif)
源
![](/icons/3495chengxu.gif)
就会被下载
![](/icons/3495dou2.gif)
防范窍门技巧:上传
![](/icons/3495chengxu.gif)
的前要仔细检查
![](/icons/3495dou.gif)
删除不必要
![](/icons/3495de.gif)
文档
![](/icons/3495dou2.gif)
对以BAK为后缀
![](/icons/3495de.gif)
文件要特别小心
![](/icons/3495dou2.gif)
5、特殊
![](/icons/3495zifu.gif)
攻击原理:输入框是黑客利用
![](/icons/3495de.gif)
![](/icons/3495yi.gif)
个目标
![](/icons/3495dou.gif)
他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询
![](/icons/3495dou.gif)
他们会利用特殊查询语句
![](/icons/3495dou.gif)
得到更多
![](/icons/3495de.gif)
数据库数据
![](/icons/3495dou.gif)
甚至表
![](/icons/3495de.gif)
全部
![](/icons/3495dou2.gif)
因此必须对输入框进行过滤
![](/icons/3495dou2.gif)
但如果为了提高效率仅在客户端进行输入合法性检查
![](/icons/3495dou.gif)
仍有可能被绕过
![](/icons/3495dou2.gif)
防范窍门技巧:在处理类似留言板、BBS等输入框
![](/icons/3495de.gif)
ASP
![](/icons/3495chengxu.gif)
中
![](/icons/3495dou.gif)
最好屏蔽掉HTML、javascript、VBscript语句
![](/icons/3495dou.gif)
如无特殊要求
![](/icons/3495dou.gif)
可以限定只允许输入字母和数字
![](/icons/3495dou.gif)
屏蔽掉特殊
![](/icons/3495zifu.gif)
![](/icons/3495dou2.gif)
同时对输入
![](/icons/3495zifu.gif)
![](/icons/3495de.gif)
长度进行限制
![](/icons/3495dou2.gif)
而且不但要在客户端进行输入合法性检查
![](/icons/3495dou.gif)
同时要在服务器端
![](/icons/3495chengxu.gif)
中进行类似检查
![](/icons/3495dou2.gif)
6、数据库下载漏洞
攻击原理:在用Access做后台数据库时
![](/icons/3495dou.gif)
如果有人通过各种思路方法知道或者猜到了服务器
![](/icons/3495de.gif)
Access数据库
![](/icons/3495de.gif)
路径和数据库名称
![](/icons/3495dou.gif)
那么他也能够下载这个Access数据库文件
![](/icons/3495dou.gif)
这是非常危险
![](/icons/3495de.gif)
![](/icons/3495dou2.gif)
防范窍门技巧:
(1)为你
![](/icons/3495de.gif)
数据库文件名称起个复杂
![](/icons/3495de.gif)
非常规
![](/icons/3495de.gif)
名字
![](/icons/3495dou.gif)
并把它放在几层目录下
![](/icons/3495dou2.gif)
所谓 “非常规”
![](/icons/3495dou.gif)
打个比方说
![](/icons/3495dou.gif)
比如有个数据库要保存
![](/icons/3495de.gif)
是有关书籍
![](/icons/3495de.gif)
信息
![](/icons/3495dou.gif)
可不要给它起个“book.mdb”
![](/icons/3495de.gif)
名字
![](/icons/3495dou.gif)
而要起个怪怪
![](/icons/3495de.gif)
名称
![](/icons/3495dou.gif)
比如d34ksfslf.mdb
![](/icons/3495dou.gif)
并把它放在如./kdslf/i44/studi/
![](/icons/3495de.gif)
几层目录下
![](/icons/3495dou.gif)
这样黑客要想通过猜
![](/icons/3495de.gif)
方式得到你
![](/icons/3495de.gif)
Access数据库文件就难上加难了
![](/icons/3495dou2.gif)
(2)不要把数据库名写在
![](/icons/3495chengxu.gif)
中
![](/icons/3495dou2.gif)
有些人喜欢把DSN写在
![](/icons/3495chengxu.gif)
中
![](/icons/3495dou.gif)
比如:
DBPath = Server.MapPath(“cmddb.mdb”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
假如万
![](/icons/3495yi.gif)
给人拿到了源
![](/icons/3495chengxu.gif)
![](/icons/3495dou.gif)
你
![](/icons/3495de.gif)
Access数据库
![](/icons/3495de.gif)
名字就
![](/icons/3495yi.gif)
览无余了
![](/icons/3495dou2.gif)
因此建议你在ODBC里设置数据源
![](/icons/3495dou.gif)
再在
![](/icons/3495chengxu.gif)
中这样写:
conn.open“shujiyuan”
(3)使用Access来为数据库文件编码及加密
![](/icons/3495dou2.gif)
首先在“工具→安全→加密/解密数据库”中选取数据库(如:employer.mdb)
![](/icons/3495dou.gif)
然后按确定
![](/icons/3495dou.gif)
接着会出现“数据库加密后另存为”
![](/icons/3495de.gif)
窗口
![](/icons/3495dou.gif)
可存为:
“employer1.mdb”
要注意
![](/icons/3495de.gif)
是
![](/icons/3495dou.gif)
以上
![](/icons/3495de.gif)
动作并不是对数据库设置密码
![](/icons/3495dou.gif)
而只是对数据库文件加以编码
![](/icons/3495dou.gif)
目
![](/icons/3495de.gif)
是为了防止他人使用别
![](/icons/3495de.gif)
工具来查看数据库文件
![](/icons/3495de.gif)
内容
![](/icons/3495dou2.gif)
接下来我们为数据库加密
![](/icons/3495dou.gif)
首先打开经过编码了
![](/icons/3495de.gif)
employer1.mdb
![](/icons/3495dou.gif)
在打开时
![](/icons/3495dou.gif)
选择“独占”方式
![](/icons/3495dou2.gif)
然后选取功能表
![](/icons/3495de.gif)
“工具→安全→设置数据库密码”
![](/icons/3495dou.gif)
接着输入密码即可
![](/icons/3495dou2.gif)
这样即使他人得到了employer1.mdb文件
![](/icons/3495dou.gif)
没有密码他也是无法看到 employer1.mdb中
![](/icons/3495de.gif)
内容
![](/icons/3495dou2.gif)
7、防范远程注入攻击
这类攻击在以前应该是比较常见
![](/icons/3495de.gif)
攻击方式
![](/icons/3495dou.gif)
比如POST攻击
![](/icons/3495dou.gif)
攻击者可以随便
![](/icons/3495de.gif)
改变要提交
![](/icons/3495de.gif)
数据值已达到攻击目
![](/icons/3495de.gif)
![](/icons/3495dou2.gif)
又如:COOKIES
![](/icons/3495de.gif)
伪造
![](/icons/3495dou.gif)
这
![](/icons/3495yi.gif)
点更值得引起
![](/icons/3495chengxu.gif)
编写者或站长
![](/icons/3495de.gif)
注意
![](/icons/3495dou.gif)
不要使用COOKIES来做为用户验证
![](/icons/3495de.gif)
方式
![](/icons/3495dou.gif)
否则你和把钥匙留给贼是同
![](/icons/3495yi.gif)
个道理
![](/icons/3495dou2.gif)
比如:
If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd")
=”fqy#e3i5.com” then
……..more………
End
![](/icons/3495if.gif)
我想各位站长或者是喜好写
![](/icons/3495chengxu.gif)
![](/icons/3495de.gif)
朋友千万别出这类
![](/icons/3495cuowu.gif)
![](/icons/3495dou.gif)
真
![](/icons/3495de.gif)
是不可饶恕
![](/icons/3495dou2.gif)
伪造COOKIES 都多少年了
![](/icons/3495dou.gif)
你还用这样
![](/icons/3495de.gif)
就不能怪别人跑你
![](/icons/3495de.gif)
密码
![](/icons/3495dou2.gif)
涉及到用户密码或者是用户登陆时
![](/icons/3495dou.gif)
你最好使用session 它才是最安全
![](/icons/3495de.gif)
![](/icons/3495dou2.gif)
如果要使用COOKIES就在你
![](/icons/3495de.gif)
COOKIES上多加
![](/icons/3495yi.gif)
个信息
![](/icons/3495dou.gif)
SessionID
![](/icons/3495dou.gif)
它
![](/icons/3495de.gif)
随机值是64位
![](/icons/3495de.gif)
![](/icons/3495dou.gif)
要猜解它
![](/icons/3495dou.gif)
不可能
![](/icons/3495dou2.gif)
例:
![](/icons/3495if.gif)
not (rs.BOF or rs.eof) then
login="true"
Session("username"&sessionID) = Username
Session("password"& sessionID) = Password
'Response.cookies(“username”)= Username
'Response.cookies(“Password”)= Password
下面我们来谈谈如何防范远程注入攻击,
![](/icons/3495yi.gif)
般
![](/icons/3495de.gif)
攻击都是将单表提交文件拖到本地,将Form ACTION=”chk.asp” 指向你服务器中处理数据
![](/icons/3495de.gif)
文件即可.如果你全部
![](/icons/3495de.gif)
数据过滤都在单表页上
![](/icons/3495dou.gif)
那么恭喜你
![](/icons/3495dou.gif)
你将已经被脚本攻击了.
![](/icons/3495if.gif)
instr(request.servervariables
("http_referer"),"http://"&request.servervariables("host") )<1 then
response.write "处理 URL 时服务器上出错
![](/icons/3495dou2.gif)
如果您是在用任何手段攻击服务器
![](/icons/3495dou.gif)
那你应该庆幸
![](/icons/3495dou.gif)
你
![](/icons/3495de.gif)
所有操作已经被服务器记录
![](/icons/3495dou.gif)
我们会第
![](/icons/3495yi.gif)
时间通知公安局和国家安全部门来调查你
![](/icons/3495de.gif)
IP. "
本以为这样就万事大吉了
![](/icons/3495dou.gif)
在表格页上加
![](/icons/3495yi.gif)
些限制,比如maxlength啦,等等……但天公就是那么不作美
![](/icons/3495dou.gif)
你越怕什么他越来什么
![](/icons/3495dou2.gif)
你别忘了
![](/icons/3495dou.gif)
攻击者可以突破sql注入攻击时输入框长度
![](/icons/3495de.gif)
限制
![](/icons/3495dou2.gif)
写
![](/icons/3495yi.gif)
个SOCKET
![](/icons/3495chengxu.gif)
改变HTTP_REFERER?我不会
![](/icons/3495dou.gif)
网上发表了这样
![](/icons/3495yi.gif)
篇文章:
------------len.reg-----------------
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\扩展(&E)]
@="C:\Documents and Settings\Administrator\桌面\len.htm"
"contexts"=dword:00000004
-----------end----------------------
-----------len.htm------------------
----------end-----------------------
使用方法:先把len.reg导入注册表(注意文件路径)然后把len.htm拷到注册表中指定
![](/icons/3495de.gif)
地方
![](/icons/3495dou2.gif)
打开网页
![](/icons/3495dou.gif)
光标放在要改变长度
![](/icons/3495de.gif)
输入框上点右键
![](/icons/3495dou.gif)
看多了
![](/icons/3495yi.gif)
个叫扩展
![](/icons/3495de.gif)
选项了吧单击搞定! 后记:同样
![](/icons/3495de.gif)
也就可以对付那些限制输入内容
![](/icons/3495de.gif)
脚本了
![](/icons/3495dou2.gif)
如何办?我们
![](/icons/3495de.gif)
限制被饶过了
![](/icons/3495dou.gif)
所有
![](/icons/3495de.gif)
努力都白费了?不
![](/icons/3495dou.gif)
举起你de键盘
![](/icons/3495dou.gif)
说不
![](/icons/3495dou2.gif)
让我们继续回到脚本
![](/icons/3495zifu.gif)
![](/icons/3495de.gif)
过滤吧
![](/icons/3495dou.gif)
他们所进行
![](/icons/3495de.gif)
注入无非就是进行脚本攻击
![](/icons/3495dou2.gif)
我们把所有
![](/icons/3495de.gif)
精力全都用到ACTION以后
![](/icons/3495de.gif)
页面吧
![](/icons/3495dou.gif)
在chk.asp页中
![](/icons/3495dou.gif)
我们将非法
![](/icons/3495de.gif)
![](/icons/3495zifu.gif)
全部过滤掉
![](/icons/3495dou.gif)
结果如何?我们只在前面虚晃
![](/icons/3495yi.gif)
枪
![](/icons/3495dou.gif)
叫他们去改.