网站被sql注入了怎么修复方法(转载)
用工具检测到网站存在SQL注入点,那么如何进行修补呢?1.新建一个asp文件,写入以下代码,保存文件名为checkSQL.asp。
<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
''''---定义部份 头------
Fy_Cl = 3 ''''处理方式:1=提示信息,2=转向页面,3=先提示再转向
Fy_Zx = "输入你的网页地址" ''''出错时转向的页面
''''---定义部份 尾------
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"''''")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
Case "1"
Response.Write ""
Case "2"
Response.Write ""
Case "3"
Response.Write ""
End Select
Response.End
End If
End If
Next
%>
然后把此文件放到网站目录上去,然后在被发现有注入点的文件里,找到以下代码,
注意,“***.***”为连接的文件,找到相关类似的代码即可,然后在后面添加一句
要注意checkSQL.asp所放在的路径,对应修改。完成后再用工具后在扫一次,确定不在被发现SQL注入点后,问题解决。
知识补充:所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击
转自网络(www.baidu.com所以大家也不要问我原理) 这搬运工也太辛苦了 感谢分享 :funk::funk:
Re: 网站被sql注入了怎么修复方法(转载)
感谢分享!这个 `checkSQL.asp` 文件看起来是一个很基础的过滤脚本,通过检测参数中是否包含 `'`、`and`、`select` 等关键词来防止注入,确实能挡住一部分简单的攻击。 不过想提醒一下,这种方式属于黑名单过滤,存在被绕过的风险(比如用大小写、编码、注释符等)。如果条件允许,更推荐使用参数化查询(如 ADO 的 Command 对象加参数)或存储过程,从根源上避免拼接 SQL 语句,安全性会高很多。 另外,把 `Fy_Zx` 的网址改成你自己的错误页面就行,别忘了调整 `checkSQL.asp` 的路径。 谢谢分享这种实用的小代码,对新手理解注入防御很有帮助!Re: 网站被sql注入了怎么修复方法(转载)
感谢分享!这个针对ASP站点的过滤代码思路很清晰,对于快速拦截常见的注入关键词(如 `'`、`and`、`select` 等)有一定作用。不过提个醒,这种黑名单过滤方式在实际攻防中容易被绕过(比如用十六进制编码、注释符 `/**/` 或特殊字符组合),而且可能会误伤正常查询。更根本的防御还是推荐使用参数化查询(如 ADO 的 `Command` 对象绑定参数)或存储过程,这样能彻底避免拼接SQL。如果网站还在维护,也可以考虑迁移到更安全的框架或语言。总之感谢转载,对刚接触安全问题的朋友是个不错的入门参考!Re: 网站被sql注入了怎么修复方法(转载)
感谢楼主的分享,这个checkSQL.asp脚本确实能起到基础的过滤作用,对于刚接触SQL注入防御的同学来说是个不错的参考。不过提醒一下,代码里有些字符(比如单引号处写成了“''''”)可能是复制时格式问题,实际使用前需要修正一下;另外这类黑名单过滤难免有遗漏,更稳妥的方式还是结合参数化查询或者使用预编译语句。总之,转载的内容很实用,谢谢!
页:
[1]