时间:2021-05-25
Rem##长整数转换
FunctiontoNum(s,default)
IfIsNumeric(s)ands<>""then
toNum=CLng(s)
Else
toNum=default
EndIf
EndFunction
Rem##SQL语句转换
FunctiontoSql(str)
IfIsNull(str)Thenstr=""
toSql=replace(str,"''","''''")
EndFunction
示例:
Dimsql
DimstrWhere,strName,intAge
strName=toSql(request("user"))
intAge=toNum(request("age"),20)
sql="SELECT*FROM[USER]"&_
"WHERE[AGE]>"&strName&_
"AND[USERNAME]=''"&intAge&"''"
一般情况下,通过上面两个函数的过虑,可以杜绝网上的SQL注入攻击!如果你觉得有需要,可以加上对chr(0)的替换,将toSql函数改为如下:
FunctiontoSql(str)
IfIsNull(str)Thenstr=""
str=replace(str,chr(0),"")
toSql=replace(str,"''","''''")
EndFunction
另注:
***********************************************************************
检测外部提交的函数
FunctionCheckUrlRefer()
DimstrLocalUrl,intUrlLen,strUrlRefer
strLocalUrl="http://127.0.0.1"
intUrlLen=Len(strLocalUrl)
strUrlRefer=LCase(request.ServerVariables("HTTP_REFERER")&"")
''检测前一个页面是否来自strLocalUrl
IfLeft(strUrlRefer,intUrlLen)=strLocalUrlThen
CheckUrlRefer=True
Else
CheckUrlRefer=False
EndIf
EndFunction
***********************************************************************
该函数可以帮助你抵挡外部的SQL注入测试,只需要在页面的头部调用即可.
通过简单的两个小函数,让你的ASP程序更安全!
欢迎高手指正(请将绕过这两个函数的方法写出来)!
相关讨论页面:
http://community.csdn.net/Expert/TopicView.asp?id=3585010
http://community.csdn.net/Expert/TopicView.asp?id=3582230
http://community.csdn.net/Expert/topic/3589/3589480.xml?temp=.4866449
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
dimqs,errc,iii
qs=request.servervariables("query_string")
dimnothis(18)
nothis(0)="netuser"
nothis(1)="xp_cmdshell"
nothis(2)="/add"
nothis(3)="exec%20master.dbo.xp_cmdshell"
nothis(4)="netlocalgroupadministrators"
nothis(5)="select"
nothis(6)="count"
nothis(7)="asc"
nothis(8)="char"
nothis(9)="mid"
nothis(10)="''"
nothis(11)=":"
nothis(12)=""""
nothis(13)="insert"
nothis(14)="delete"
nothis(15)="drop"
nothis(16)="truncate"
nothis(17)="from"
nothis(18)="%"
errc=false
foriii=0toubound(nothis)
ifinstr(qs,nothis(iii))<>0then
errc=true
endif
next
iferrcthen
Response.Write("对不起,非法URL地址请求!")
response.end
endif
***************************************************************
当然这方法做得太“绝”了,但是我也是没有办法啊。这个方法是在网上看到的,运行于一个网站上,现在一切良好。为了安全我只能这样。我想只要有关SQL的敏感单词都进行过滤掉应该没有什么吧,当然像楼主的做到那一步是基本上可以了,可以修补一下用用。记得我最初用的是《SQL注入天书》上面提供的防范方法,后来才改用这个。
将我以前用的代码也帖出来供参考,大家有兴趣可以去百度或GOOGLE中搜索一下《SQL注入天书》了解
使用这个函数,对客户端提交来的数据进行验证。。。
<%
FunctionSafeRequest(ParaName,ParaType)
''---传入参数---
''ParaName:参数名称-字符型
''ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
DimParaValue
ParaValue=Request(ParaName)
IfParaType=1then
IfnotisNumeric(ParaValue)then
Response.write"参数"&ParaName&"必须为数字型!"
Response.end
Endif
Else
ParaValue=replace(ParaValue,"''","''''")
Endif
SafeRequest=ParaValue
Endfunction%>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
编写通用的asp防注入程序选择自ph4studio的Blog关键字编写通用的asp防注入程序出处sql注入被那些菜鸟级别的所谓黑客高手玩出了滋味,,发现现在大部
1、SQL注入攻击的本质:让客户端传递过去的字符串变成SQL语句,而且能够被执行。2、每个程序员都必须肩负起防止SQL注入攻击的责任。 说起防止SQL注入攻击
下面通过两个方面给大家介绍js代码防止sql注入的方法,非常简单实用,感兴趣的朋友参考下吧!1.URL地址防注入://过滤URL非法SQL字符varsUrl=l
本文实例讲述了ASP.NET防止SQL注入的方法。分享给大家供大家参考,具体如下:最近接手别人一个项目,发现存在SQL注入漏洞,因为不想改太多代码,所以那种参数
本文以一个C#的SQL数据库字串操作函数为例,说明如何实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入等功能。具