日期:2014-05-16  浏览次数:20895 次

请问下,这么写一个文件有没有安全问题
下面代码是我找的一个独立的func.asp文件,里面一个函数涉及到数据库访问,但是因为没有权限验证,不知道直接放在服务器里面有没有危险,烦请高手指教!





<%
class cls_show
Public Sub ShowPageInfo(table,id,condition,PageNo,PageSize,LinkFile)
dim StrSql,TotalCount,TotalPageCount,OutStr
StrSql="SELECT count("&id&") FROM "&table&" "&condition&""
Set rs = hx.Execute(StrSql)
TotalCount=rs(0)
Set rs=Nothing

'如果记录数为0,那么退出
If TotalCount=0 Then
Exit Sub
End If
OutStr="<P align=Center>"
'如果记录数>MaxRecord,则记录数为MaxRecord
if TotalCount>MaxRecord then
OutStr = OutStr & Lang.item("g_022") & TotalCount & Lang.item("g_024") & " " & Lang.item("g_023") & MaxRecord & Lang.item("g_024")
TotalCount=MaxRecord
else
OutStr = OutStr & Lang.item("g_022") & TotalCount & Lang.item("g_024")
end if
'得到总页数
If (TotalCount mod PageSize)=0 Then
TotalPageCount=TotalCount\PageSize
Else
TotalPageCount=(TotalCount\PageSize)+1
End If
'防止提交的page参数大于第二次提交的总页数
if PageNo>TotalPageCount then 
PageNo=TotalPageCount
End if
OutStr = OutStr & "&nbsp;<font color='#FF0000'>"&PageNo&"</font>/<font color='#FF0000'>"&TotalPageCount&"</font>"
If PageNo>1 Then
OutStr = OutStr & "&nbsp;<a Href='?"&LinkFile&"&PageNo=1'>"& Lang.item("g_025") & "</a>"
OutStr = OutStr & "&nbsp;<a Href='?"&LinkFile&"&PageNo="&PageNo-1&"'>"& Lang.item("g_026") & "</a>"
End If
If PageNo<TotalPageCount Then
OutStr = OutStr & "&nbsp;<a Href='?"&LinkFile&"&PageNo="&PageNo+1&"'>"& Lang.item("g_027") & "</a>"
OutStr = OutStr & "&nbsp;<a Href='?"&LinkFile&"&PageNo="&TotalPageCount&"'>"& Lang.item("g_028") & "</a>"
End If
OutStr = OutStr & "</P>"
Response.Write(OutStr)
End Sub

End class
%>

------解决方案--------------------
目录有安全问题。
------解决方案--------------------
SQL语句是拼接的就可能会有SQL注入问题,尽量用参数化查询.

------解决方案--------------------
一个sql注入的安全,另外是服务器目录的安全性。
------解决方案--------------------
只是个类的话,可以这样写, 但是传参数的时候,参数要过滤。