ASP高手请进!数据库字段名被暴!怎么办?

我用的是ACCESS,我对于ASP的安全防范还不是很好~我的一个网站的留言板是用ASP+access做的,最近经常有些人在我的空间留言,其留言后,竟然将我的数据表中的字段... 我用的是ACCESS,我对于ASP的安全防范还不是很好~

我的一个网站的留言板是用ASP+access做的,最近经常有些人在我的空间留言,其留言后,竟然将我的数据表中的字段名暴露出来.

如一般我们留言板的设的字段为:id(编号),name(昵称),about(内容),留言者留言后,竟然出现如:
$(name)或$(name:n)的留言!

他怎么知道我的数据库字段名的?怎么防范啊?
展开
 我来答
addgrrr
2008-01-24 · TA获得超过418个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:275万
展开全部
定义chksql.asp文件
<%
Dim Query_Badword,Form_Badword,a,Err_Message,Err_Web,name

Query_Badword="'‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖=‖exec"

Form_Badword="'‖%‖*‖&‖=‖<‖>"

On Error Resume Next

if request.QueryString<>"" then
Chk_badword=split(Query_Badword,"‖")
FOR each Query_Name in Request.QueryString
for a=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(a))<>0 Then
Response.Write "·出错了!参数"&name&"的值中包含非法字符串!<br>·请不要在参数中出现:and update delete ; insert mid master 等非法字符!"
Response.End
End If
next
NEXT
End if

'-----对 post 表 单值的过滤.

if request.form<>"" then
Chk_badword=split(Form_Badword,"‖")
FOR each name in Request.Form
for a=0 to ubound(Chk_badword)
If Instr(LCase(request.form(name)),Chk_badword(a))<>0 Then
Response.Write "·出错了!表单"&name&"的值中包含非法字符串!<br>·请不要在表单中出现: % & * < > 等非法字符!"
Response.End
End If
next
NEXT
end if
%>
把这个文件连接到你的文件中:
如<!--#include file="chksql.asp"-->

修改你的数据库名称,建议你将数据库名中加上%20或其他特殊字符,在IE的地址栏中%20被默认为空格字符,防止数据库被下载!
如: my20%from_data#.mdb
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃文Oq
2008-01-24 · TA获得超过195个赞
知道小有建树答主
回答量:434
采纳率:0%
帮助的人:0
展开全部
呵呵

可能是sql注入 也可能是留言的时候加入了特殊的字符

现在网上总是有些无聊的人专门找些看上去防护差点的

网站攻击 真是没有水准

对于的你的问题 你可以把你的网址告诉我 我去测试

如果不介意的话 我看下你的代码 看怎么改下

我这几天蛮忙 所以没有及时的回复你 不好意思
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式