关于ASP语言的漏洞问题~答者有分哦!!!!
各位兄弟~有一些问题想问一下
我们公司想做一个类似于“淘宝”的交易类网站,使用ASP语言,我就想问一下如果做ASP的话那么需要注意哪些漏洞风险问题呢?
以下是我个人知道的一点漏洞:
1。防止外部提交
这是防止外部提交的代码
'检测外部提交
ht=Request.ServerVariables( "HTTP_REFERER ")
hs=Request.ServerVariables( "SERVER_NAME ")
if mid(ht,8,len(hs)) <> hs then
response.write " <script> alert( '请不要试图以不和法的URL参数访问! ');location.href= 'http:// "&Request.ServerVariables( "SERVER_NAME ")& " '; </script> "
response.end
end if
2。防止URL注入
检测是否带有注入的参数
function filt(stri)
dim i
ale= Instr(stri, " ' ")
i=i+ale
ale= Instr(stri, " < ")
i=i+ale
ale= Instr(stri, "> ")
i=i+ale
ale= Instr(stri, " " " ")
i=i+ale
ale= Instr(stri, "’ ")
i=i+ale
ale= Instr(stri, "‘ ")
i=i+ale
ale= Instr(stri, "“ ")
i=i+ale
ale= Instr(stri, "” ")
i=i+ale
ale= Instr(stri, "$ ")
i=i+ale
ale= Instr(stri, "% ")
i=i+ale
ale= Instr(stri, "& ")
i=i+ale
ale= Instr(stri, "# ")
i=i+ale
ale= Instr(stri, "~ ")
i=i+ale
ale= Instr(stri, "` ")
i=i+ale
ale= Instr(stri, "* ")
i=i+ale
ale= Instr(stri, "( ")
i=i+ale
ale= Instr(stri, ") ")
i=i+ale
ale= Instr(stri, "+ ")
i=i+ale
ale= Instr(stri, "= ")
i=i+ale
ale= Instr(stri, "^ ")
i=i+ale
ale= Instr(stri, "! ")
i=i+ale
ale= Instr(stri, ", ")
i=i+ale
ale= Instr(stri, "{ ")
i=i+ale
ale= Instr(stri, "} ")
i=i+ale
ale= Instr(stri, "] ")
i=i+ale
ale= Instr(stri, "[ ")
i=i+ale
ale= Instr(stri, "and ")
i=i+ale
ale= Instr(stri, "insert ")
i=i+ale
ale= Instr(stri, "or ")
i=i+ale
ale= Instr(stri, "not ")
i=i+ale
ale= Instr(stri, "like ")
i=i+ale
ale= Instr(stri, "update ")
i=i+ale
ale= Instr(stri, "del ")
i=i+ale
ale= Instr(stri, "add ")
i=i+ale
ale= Instr(stri, "exec ")
i=i+ale
ale= Instr(stri, "asc ")
i=i+ale
ale= Instr(stri, "object ")
i=i+ale
ale= Instr(stri, "join ")
i=i+ale
ale= Instr(stri, "where ")
i=i+ale
ale= Instr(stri, "delete ")
i=i+ale
ale= Instr(stri, "count ")
i=i+ale
ale= Instr(stri, "char ")
i=i+ale
ale= Instr(stri, "int ")
i=i+ale
ale= Instr(stri, "exists ")
i=i+ale
ale= Instr(stri, "if ")
i=i+ale
ale= Instr(stri, "for ")
i=i+ale
ale= Instr(stri, "else ")
i=i+ale
ale= Instr(stri, "mid ")
i=i+ale
ale= Instr(stri, "cint ")
i=i+ale
ale= Instr(stri, "cstr ")
i=i+ale
ale= Instr(stri, "create ")
i=i+ale
ale= Instr(stri, "table ")
i=i+ale
ale= Instr(stri, "view ")
i=i+ale
ale= Instr(stri, "select ")
i=i+ale
ale= Instr(stri, "from ")
i=i+ale
ale= Instr(stri, "rename ")
i=i+ale
ale= Instr(stri, "script ")
i=i+ale
ale= Instr(stri, "go ")
i=i+ale
ale= Instr(stri, "execute ")
i=i+ale
ale= Instr(stri, "chr ")
i=i+ale
filt=i
end function
过滤“ '”符号
function filtstr(str)
str=replace(str, " ' ", "’ ")
filtstr=str
end function
请问除了注意以上这些还需要注意哪些呢!谢谢~~~~~
[解决办法]
我也想知道。期待ING……
[解决办法]
sql注入
[解决办法]
简单的说,你用的防注入方法太垃圾了。。。。
[解决办法]
注意过滤 '就行了
如果参数是数字,过滤后加上Clng转换
[解决办法]
上传文件的格式
旁注
[解决办法]
防止sql注入 逻辑上是数字类型的字符串一定要进行数字类型校验,字符类型的替换字符串的半角单引号( ')为双个单引号( ' '),在sql语句中双个单引号代表一个单引号。只要保证这两个,就可以防止sql注入。
而你的防止外部提交的代码根本没什么太大的作用,只能防防菜鸟,最根本的做法是在关键提交中用session或Cookies+session来限制没有权限的提交
[解决办法]
文件上传是一方面,还有防止重复提交,最主要的还是服务器端的安全,这个只能是靠空间商来维护
[解决办法]
逻辑上是用SESSION做的但是不能是你这个方法,我提交一次然后这个页面不动,在新打开一个表单页面SESSION(“PAGEVALUES”)不就又是0了,然后在刷提交过的页面,呵呵,重复提交成功了用这个
<%
Sub InitializeFID()
If Not IsObject(Session( "FIDList ")) Then
Set Session( "FIDList ")=Server.CreateObject( "Scripting.Dictionary ")
Session( "FID ")=0
End If
End Sub
Function GenerateFID()
InitializeFID
Session( "FID ") = Session( "FID ") + 1
GenerateFID = Session( "FID ")
End Function
Sub ReGISterFID()
Dim strFID
InitializeFID
strFID = Request( "FID ")
Session( "FIDlist ").Add strFID, now()
End Sub
Function CheckFID()
Dim strFID
InitializeFID
strFID = trim(Request( "FID "))
CheckFID = not Session( "FIDlist ").Exists(strFID)
End Function
%>
怎么用,我懒得解释了,你可以上网查查
[解决办法]
真有分啊!
[解决办法]
上传漏洞
爆库漏洞
数据库木马
[解决办法]
ASP漏洞分析和解决方法:
http://www.netbei.com/Article/asp/asp5/200408/1198.html
[解决办法]
sql注入漏洞现在被利用的较多