发新话题
打印

[原创]asp中对多余参数的完美过滤

[原创]asp中对多余参数的完美过滤

文章作者:sunlion[E.S.T](血舞[E.S.T])
信息来源:邪恶八进制 中国

  上次写了一篇关于参数过滤的帖子,记得那时用的是instr函数,只是进行了某个参数的比较,要使能过滤很多的参数,那么要在比较区内加上大量的过滤符号,今天,也就是今天,笔者给大家带来一个更加完美的过滤方式,就是用到微软的VBscript里面的一个isnumeric()函数!好了,废话少说,先来看看他的描述与用法:
IsNumeric 函数 描述
返回 Boolean 值指明表达式的值是否为数字。
语法
IsNumeric(expression)
expression 参数可以是任意表达式。
说明
如果整个 expression 被识别为数字,IsNumeric 函数返回 True;
否则函数返回 False。
如果 expression 是日期表达式,IsNumeric 函数返回 False。
好了,看到这里大家明白了吗?
isnumeric()这个函数就是比较括号里的表达试,看是否为数字,如果为数字这返回true,如果非数字则返回false,基这个原理 ,那么我们就可以用
if not isnumeric(request.querystring("id")) then response.redirect "index.asp"
同样的道理,在then后面你也可以加上你想要的,如果加上别的别忘了加上一个
response.end
表示结束!
现在给大家解析以下,这句话的意思是:如果在IE地址栏上id后面的参数不是数字的话,那么实行then后面的语句!
大家看到了吧,这里就是管家的地方,所以我说是“完美过滤”!
比如大家平时检查时候有漏洞的时候一般就是在id后面加上一些特殊的符号来达到我们想要的目的!而着函数就是我们的天敌了!
只要你在id后面加上,比喻,(‘)或(;)或(,)或( and 1=1)...等等,
都使id已经变为了非数字,也就是使then后面的语句本实行了!
从而达到了我们的过滤目的!
哈哈,好了,参数过滤今天就说到这里!
现在要干活去了:(!
垃圾一个,00...

TOP

那家伙连我的错别字都没有修改,真是的:)
呵呵,听说还是个什么黑客类站的站长呢!
55555!
垃圾一个,00...

TOP

哈哈。
昨天冰血和我说,他们竟然能把PHPWIND这种版面十分工整的论坛弄的乱七八糟。实在有点汗!
我是纯属来扯蛋的...

TOP

  最近才工作工作就是写ASP程序,,不停的写.怎么不介绍点字符串防注入的呢?
大家顺便讨论一下字串参数怎么防注入吧,哎我代码看得实在太少了~~~
在我纯真年少時,有一個女生,她願意爲我失去生命,她意志堅定地說:你再纏著我,我就去死! 在我負笈外地時,有一個女生,她願意等我到下輩子,她溫柔婉約地說:你想成爲我男友?等下輩子!! 在我窮困潦倒時,有一個女生,她願意與我共赴黃泉,她眨著紅眼說:你再不還錢,我和你同歸于盡!

TOP

风,有时静,有时猛 风,有时喜,有时恨 风,有时大,有时小 我,我是风,我爱风 我是风流的风

TOP

引用:
下面是引用勇敢的风于2005-04-06 15:43发表的:
http://feng.cnblog.com.cn/Look.asp?LogID=213
引用:
<%
function sql_zr(str)
dim w,j
w = "’∥%∥&∥*∥#∥@∥(∥)∥=∥and∥select∥update∥chr∥delete∥%20from∥;∥insert∥mid∥master.∥set∥chr(37)"
w = split(w,"∥") &#39;22222222
for j = 0 to ubound(w)
if instr(str,w(j)) <> 0 then
response.redirect "../"
response.end
end if
next
end function
%>
这一段代码一点都不好,最基本的连大小写都没考虑进去,这样防注入怎么会有用?
在我纯真年少時,有一個女生,她願意爲我失去生命,她意志堅定地說:你再纏著我,我就去死! 在我負笈外地時,有一個女生,她願意等我到下輩子,她溫柔婉約地說:你想成爲我男友?等下輩子!! 在我窮困潦倒時,有一個女生,她願意與我共赴黃泉,她眨著紅眼說:你再不還錢,我和你同歸于盡!

TOP

偶在csdn上看到个高人写的过滤函数,只过滤小括号!别的不用管!呵呵!
广告位招商! 联系人:neeao E-Mail:neeaocn(at)gmail.com Msn:neeao@hotmail.com Site:http://www.neeao.com

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

  这篇文章大家可以看看发贴时间,那个时候刚学asp不久,以为很NB呢!现在在看这篇文章的时候就觉得不值得一提了!
因为,天下的人都知道了,那个时候我还以为只有我自己知道呢:)!
大家谅解哦!:)
垃圾一个,00...

TOP

引用:
下面是引用haicao于2005-04-06 21:01发表的:

这一段代码一点都不好,最基本的连大小写都没考虑进去,这样防注入怎么会有用?
说得好!
但是可以这样:
sql_zr(LCase(str))
使用,你说呢?


当然,非常感谢你的提醒!


修改后的
引用:
<%
function sql_zr(str)
str=LCase(str)
dim w,j
w = "’∥%∥&∥*∥#∥@∥(∥)∥=∥and∥select∥update∥chr∥delete∥%20from∥;∥insert∥mid∥master.∥set∥chr(37)"
w = split(w,"∥") &#39;22222222
for j = 0 to ubound(w)
if instr(str,w(j)) <> 0 then
response.redirect "../"
response.end
end if
next
end function
%>
风,有时静,有时猛 风,有时喜,有时恨 风,有时大,有时小 我,我是风,我爱风 我是风流的风

TOP

发新话题