论坛数据统计           欢迎到【弱电论坛】来学习和讨论问题!

弱电工程项目管理软件 报价之星软件--智能弱电系统专业软件
★电工电气产品供求、电气展会、人才、电气技术文章、图库、电气技术论坛等相关内容,请跳转至【电气工程网】--- 可直接使用本站会员名和密码登陆!(首次使用需要激活账户)
标王 热搜: 网络监控  楼宇对讲  弱电  机房及机柜内部的理线方法  ar800-hn  CAD  门禁  综合布线  工资  面板 
 
当前位置: 首页 » 技术文章 » 电脑技术 » 网页网站 » 正文

预防SQL注入漏洞函数

放大字体  缩小字体 发布日期:2008-12-22  来源:互联网  作者:manage  浏览次数:522
核心提示:仅仅代表我的观点.不怕见笑.有问题请大家指教!我想如果你是牛人,那这个已经不是值得你看的内容,只是觉得对与很多刚入门的ASP程序员来说还是有点实际意义,所以不怕被大家笑话,写了贴在这里! <% FunctioncheckStr(str) ifisnull(str)then checkStr="" exitfunction end
仅仅代表我的观点.不怕见笑.有问题请大家指教!我想如果你是牛人,那这个已经不是值得你看的内容,只是觉得对与很多刚入门的ASP程序员来说还是有点实际意义,所以不怕被大家笑话,写了贴在这里!

 

<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function 

end if

checkStr=replace(str," ","")

checkStr=replace(str,"’","’")

checkStr=replace(str,";","’")

checkStr=replace(str,"--","’")

checkStr=replace(str,"(","’")

checkStr=replace(str,"[","’")

checkStr=replace(str,"$","’")

end function

%>


相关函数
Left(string, length)
 返回指定数目的从字符串的左边算起的字符
 
Asc(string)
 返回与字符串的第一个字母对应的 ANSI 字符代码。
 
Mid(string, start[, length])
 从字符串中返回指定数目的字符。
 
***********************************
我自己的做法是把字符串限定在8个字符内,呵!(千万条数据啊,没谁有这样大的记录吧?99,999,999呵!不够用,才怪了!除非你的数据从来不更新删出,那也没办法,问题是sql到了这样的时会是怎么样的速度)


---<%
if len(request.querystring("ddd"))> 8 then
response.write(黑我啊,不要了。少来)
response.end ’最好有这句

’’’初步是判断是否是数字=======IsNumeric 函数
if IsNumeric(request.querystring("ddd")) then

Execute("select * from [table]")

....

else

response.write(黑我啊,不要了。少来)
response.end ’最好有这句

%>

当然了,加上上面的函数,在你的SQL过程里,效果就非常完美了!

呵!!!在变态点做个函数。

---<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function 

end if

checkStr=replace(str," ","")

checkStr=replace(str,"’","’")

checkStr=replace(str,";","’")

checkStr=replace(str,"--","’")

checkStr=replace(str,"(","’")

checkStr=replace(str,"[","’")

checkStr=replace(str,"$","’")

checkStr=replace(str,"asc’," ")

checkStr=replace(str,"mid"," ")

checkStr=replace(str,"delete"," ")

checkStr=replace(str,"drop"," ")

’’’呵!!我这里没屏蔽select,count,哈!想起来我就笑,太变态了,那其不是我什么都不用了不是更更安全啊!!!呵!!~^)^~
end function

%>


足够了,这个函数加载到sql选取记录集的地方。
如:rsql="select * from table where xxx="&checkstr(request.querystring("xxyy"))&""
或者来就判断字符串

说的有点林乱,但是就是这些了,对于普通的"黑客"已经足够他毫些时间了。但是对于老到的真正意义的黑客,这些都不是万能的东西,人家连服务器都黑,你能怎么样啊?嘿!!

看了些资料,结合自己的经验,写在这里。算是自己复习一下,看到的朋友也可以一起交流!

 
 
[ 技术文章搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
0条 [查看全部]  相关评论

 
推荐图文
推荐技术文章
点击排行
 
 



弱电网、电气网合并

 
弱电基础 | 常用软件 | 信息发布规则 | 积分规则 | VIP会员注册 | 广告投放 | 弱电培训 | 联系我们 | 版权声明 | 帮助中心 | 网站地图 | 排名推广 | 苏ICP备14010056号 | RSS订阅
★本站手机app客户端已上线! 点击下载