返回列表 发帖
最核心的办法应该是检查它是不是数字
if isnumeric(id)=false then
response.redirect "index.asp"
end if

Replace只会越弄越繁
帖子31 精华2 积分113 阅读权限40 在线时间82 小时 注册时间2005-2-20 最后登录2008-6-18 查看详细资料TOP

代码罐头
技术核心组

TOP

不用检测
提交的时候直接定义成数字连入侵者都敢说自己在做网络安全。关键大家是真正为安全作过什么?
帖子692 精华12 积分2264 阅读权限200 性别男 在线时间726 小时 注册时间2013-11-26 最后登录2008-7-21 查看详细资料TOP

职业欠钱
荣誉会员

TOP

提交的时候再检查
不如当初就直接定义为数字(数字参数)
偶有个问题
疑惑很久了的
字符型的参数,只过滤单引号,能否绕过过滤而进行注射?
topic=request("topic")
topic=replace(topic,"'","''")  '单引号变两个单引号
SQL语句为
SQL="select * from [article] where [topicname]='"&topic&"'"
请问有没有可能绕过个人论坛: http://www.xdxf.net
帖子60 精华2 积分3417 阅读权限100 性别男 在线时间134 小时 注册时间2005-5-3 最后登录2008-5-28 查看详细资料TOP

marquee
荣誉会员

TOP

也发表一个我的看法。
把传值在过滤的同时,用 left() 限制住,到底限制多少大家心里应该有个底,不管如何SQL语句,都是缺胳膊少腿,这样就没耐何了。

此法不足之处就是查询中,这个字数限制多少倒是需要好好考虑。

楼上的问题我也带着这疑问呵,不知道用UNION构造会不会绕过,因为这时都没用到 单引号。自己试过没成功。希望高人现身解答。Every Thing Is The Object !

帖子8 精华0 积分3016 阅读权限100 在线时间12 小时 注册时间2005-1-24 最后登录2008-1-31 查看个人网站
查看详细资料TOP

职业欠钱
荣誉会员

TOP

返回列表