Office中国论坛/Access中国论坛

标题: 2016第一问:如何防止sql注入 [打印本页]

作者: 风中漫步    时间: 2016-1-1 09:25
标题: 2016第一问:如何防止sql注入
大家新年好!
如果过滤字符,应该滤掉那些?有其他方法吗?
谢谢

作者: tmtony    时间: 2016-1-1 20:03
一般要 过滤 where 条件 里有 insert update 等字眼
但具体的防范会非常复杂。因为攻击也会千变万化,但同时又不能屏蔽正常的更新 新增操作

作者: 风中漫步    时间: 2016-1-2 12:44
tmtony 发表于 2016-1-1 20:03
一般要 过滤 where 条件 里有 insert update 等字眼
但具体的防范会非常复杂。因为攻击也会千变万化,但同 ...

o,这么复杂啊

谢谢站长指点
作者: ganlinlao    时间: 2016-1-2 13:17
不太清楚你的使用环境。
一般防SQL注入,在asp或php中是特别重视的
以下是一段asp防SQL注入,希望能对你有所启发:
dim sql_injdata,SQL_inj,SQL_Get,SQL_Data,Sql_Post

SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=javascript>alert('注意:请不要提交非法请求!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=javascript>alert('注意:请不要提交非法请求!');history.back(-1)</Script>"
Response.end
end if
next
next
end if
作者: 风中漫步    时间: 2016-1-3 13:48
ganlinlao 发表于 2016-1-2 13:17
不太清楚你的使用环境。
一般防SQL注入,在asp或php中是特别重视的
以下是一段asp防SQL注入,希望能对你 ...

谢谢
作者: 风中漫步    时间: 2016-1-3 13:52
我在构思3层cs.搜过一些,希望有个较好的解决方法.
曾想用固定字符替换掉内容中的敏感字串,感觉也不是好办法.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3