久艹视频免费看,亚洲成av人综合在线观看,51久久夜色精品国产水果派解说,gogo全球大胆高清人体444

知識學(xué)堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時手機(jī):13896886023
  • ·QQ 咨 詢:361652718 513960520
當(dāng)前位置 > 首頁 > 知識學(xué)堂 > 常見技術(shù)問題
防止數(shù)據(jù)庫被注入惡意代碼
更新時間:2012-05-07 | 發(fā)布人:本站 | 點(diǎn)擊率:459
數(shù)據(jù)庫被惡意注入代碼是非常致命的問題,主要的手段有:利用程序漏洞,用一段程序就可以測試出來,主要體現(xiàn)在前臺提交的一些表單上沒有對非法字符進(jìn)行過濾!那么我們?nèi)绾畏乐棺⑷肽?(這里只針對asp+MSSQL)
 
首先就是在程序中加上防止注入的過濾函數(shù):
 
檢測非字符
SQL_injdata = "|exec|insert|||delete|set | || | |char | || ||mid( |asc( ||cast|declare|exec|varchar|<script|script|iframe|3bomb|c.js"  
SQL_inj = split(SQL_Injdata,"|")
 
檢測GET
If Request.QueryString<>"" Then  
 For Each SQL_Get In Request.QueryString  
  For SQL_Data=0 To Ubound(SQL_inj)  
  if instr(lcase(Request.QueryString(SQL_Get)),Sql_Inj(Sql_DATA))>0 Then  
  response.write "輸入非法,數(shù)據(jù)庫拒絕一些特殊的字符!"
  Response.end  
  end if  
  next  
 Next  
End If  
 
檢測POST
If Request.Form<>"" Then  
 For Each Sql_Post In Request.Form  
  For SQL_Data=0 To Ubound(SQL_inj)  
  if instr(lcase(Request.Form(Sql_Post)),Sql_Inj(Sql_DATA))>0 Then  
  response.write "輸入非法,數(shù)據(jù)庫拒絕一些特殊的字符!"
  Response.end  
  end if  
  next  
 next  
end if
 
檢測cookie
If Request.Cookies<>"" Then  
 For Each Sql_Cookie In Request.Cookies  
  For SQL_Data=0 To Ubound(SQL_inj)  
  if instr(lcase(Request.Cookies(Sql_Cookie)),Sql_Inj(Sql_DATA))>0 Then  
  response.write "輸入非法,數(shù)據(jù)庫拒絕一些特殊的字符!"
  Response.end  
  end if  
  next  
 next  
end if
 
這樣就基本上把表單提交數(shù)據(jù)時的漏洞給堵死了!從三個方面判斷,直接請求數(shù)據(jù)和表單提交或者cookies提交數(shù)據(jù)非法字符都會被過濾掉!
 
dim server_v1,server_v2
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
if server_v1<>"" then
 if instr(server_v1,"3bomb")>0 then
 response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
 response.write "<tr><td style=font:9pt Verdana>"
 response.write "你提交的路徑有誤,禁止從站點(diǎn)外部提交數(shù)據(jù)請不要亂該參數(shù)!"
 response.write "</td></tr></table></center>"
 response.end
 end if
else
server_v1=Cstr(Request.ServerVariables("SERVER_NAME"))
end if
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
 
if instr(server_v1,"3bomb")>0instr(server_v2,"3bomb")>0 then
 response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
 response.write "<tr><td style=font:9pt Verdana>"
 response.write "你提交的路徑有誤,禁止從站點(diǎn)外部提交數(shù)據(jù)請不要亂該參數(shù)!"
 response.write "</td></tr></table></center>"
 response.end
end if
 
這段程序首先得到訪問你網(wǎng)站的來源,如果是從您知道的一個非法域名3bomb上過來就不讓他訪問。
這個就完成了對某一指定域名的屏蔽,這個域名極有可能就是一段媽媽程序!
 
禁止某些ip訪問 ---------------------
if instr(Request.ServerVariables("REMOTE_ADDR"),"209.172.33")>0 then  
Response.Write "拒絕訪問"
response.End()  
end if  
 
實(shí)在不行就通過ip進(jìn)行屏蔽,如果訪問來源是某一個ip段就進(jìn)行屏蔽
 
這三招保證您的數(shù)據(jù)庫以后不在受注入的干擾,個人的親身體驗