当前位置:清晨 » 网站建设 » 防止数据库被注入恶意代码

防止数据库被注入恶意代码

发布日期:2013年12月22日 08:12:06 点击量: 1,606

宝塔服务器面板,一键全能部署及管理,送你¥3188礼包,点我领取,简单好用的 Linux/Windows 面板

数据库被恶意注入代码是非常致命的问题,主要的手段有:利用程序漏洞,用一段程序就可以测试出来,主要体现在前台提交的一些表单上没有对非法字符进行过滤!那么我们如何防止注入呢?(这里只针对asp+MSSQL)

首先就是在程序中加上防止注入的过滤函数:

检测非字符

 SQL_injdata = "|exec|insert|||delete|set | || | |char | || ||mid( |asc( ||cast|declare|exec|varchar|/*检测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 "输入非法,数据库拒绝一些特殊的字符!"
  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 "输入非法,数据库拒绝一些特殊的字符!"
  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 "输入非法,www.2cto.com 数据库拒绝一些特殊的字符!"
  Response.end 
  end if 
  next 
 next 
end if
 

这样就基本上把表单提交数据时的漏洞给堵死了!!从三个方面判断,直接请求数据和表单提交或者cookies提交数据非法字符都会被过滤掉!


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 "

" response.write "
" response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!" response.write "
" 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 "

" response.write "
" response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!" response.write "
" response.end end if

这段程序首先得到访问你网站的来源,如果是从您知道的一个非法域名3bomb上过来就不让他访问。
这个就完成了对某一指定域名的屏蔽,这个域名极有可能就是一段妈妈程序!

禁止某些ip访问---------------------


if instr(Request.ServerVariables("REMOTE_ADDR"),"209.172.33")>0 then 
Response.Write "拒绝访问"
response.End() 
end if 

实在不行就通过ip进行屏蔽,如果访问来源是某一个ip段就进行屏蔽

这三招保证您的数据库以后不在受注入的干扰,个人的亲身体验

本文来源网络,仅作参考。


关键词:

本文网址:https://www.menglei.info/1437/,转载请以链接形式注明出处,谢谢合作!


老薛主机专属优惠码: PT ,有需要购买的同学可以使用.可享受30%的优惠.

联系站长: shadoweb@qq.com QQ: 925474725


发表评论

电子邮件地址不会被公开。 必填项已用*标注