| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 848 人关注过本帖
标题:[求助]看下这句屏蔽ASP敏感字符的代码对不对啊?
只看楼主 加入收藏
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
 问题点数:0 回复次数:6 
[求助]看下这句屏蔽ASP敏感字符的代码对不对啊?



http://www.xxx.com/xx.asp?num=5 比如这个网址
我写的屏蔽代码如下
if instr(request.querystring("num"),",")<>0 then  '如果在num后面找到"'" 则输出提示和结束ASP语句的执行!
response.write "请不要注入本站!"

response.End
end if

可我测试后,提示错误!
字符串的语法错误 在查询表达式 num=5' 中。
/分布显示/xx.asp, 第 26 行

想实现别人在参数后即Num=5的后面加上分号也不出现错误,而还是转到http://www.xxx.com/xx.asp?num=5这里!

给个其它的代码也行啊,谢谢了!

搜索更多相关主题的帖子: num ASP 字符 敏感 
2007-11-07 13:53
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
得分:0 
我把'和,弄错了,修改好后,只能屏蔽'号,其它的敏感字符却不能,谁给段代码能实现这样的效果!

如果num后面的参数不是 整数字的话则 提示错误,是的话,刚执行代码!

谢谢了
2007-11-07 14:04
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
if not isnumeric(trim(requst.querystring("num"))) then
response.write("请不要修改传递的参数值!!")
else
'代码
end if

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-07 14:10
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
得分:0 
永夜的极光 ,你说的对!再问下你 

1。可加上逗号,还出现错误 如下:
Microsoft JET Database Engine (0x80040E14)
语法错误 (逗号) 在查询表达式 'num=6,' 中。
/分布显示/xx.asp, 第 38 行
2. 比如,我数据库里只有10条记录,即Num后面的参数是从1-10!  
如果输入http://www.xxx.com/xx.asp?num=5  将5改为不在1-10之内的数后,将出现如下错误
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/分布显示/xx.asp
  
这又该怎样修改,谢谢你们,再给说一下吧, 谢谢版主!
2007-11-07 18:05
icebo
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-6-3
收藏
得分:0 
IF Rs.eof and Rs.bof Then

电影538:我的早晨从5点38开始  收集2万电影
http://www./
2007-11-07 18:24
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
1,isnumeric这个函数可以判断是不是数字,如果不是数字,就不能运行到sql语句的地方,会出现这个错误,应该是你的代码写错了,连接数据库的语句,应该写在else和end if之间
2、打开记录集的时候,要先判断记录集是否为空

综合这两个问题,你的程序应该改成这样

if not isnumeric(trim(requst.querystring("num"))) then
response.write("请不要修改传递的参数值!!")
else
'假设已定义记录集rs
sql="select ************** where num=" & trim(request.querystring("num")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write("没有找到你所需要的记录")
else
response.write(rs("****"))
end if
rs.close
set rs=nothing
end if

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-07 18:30
lijiong520
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-5-21
收藏
得分:0 
非常感谢 版主,经过你的解释,我已经弄好了!真谢谢你了,热心的版主! 顶

2007-11-07 23:03
快速回复:[求助]看下这句屏蔽ASP敏感字符的代码对不对啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084159 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved