以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 参数化SQL语句可以避免SQL注入吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133538) |
-- 作者:pc005637 -- 发布时间:2019/4/16 10:07:00 -- 参数化SQL语句可以避免SQL注入吗? 实际工作,批量导入第三方数据库的字符串列时,采用拼接SQL语句的方式,如果对方字符串出现一些 ‘’ & + 等SQL特殊字符中,会提示语句有错误。如果采用参数化SQL语句能否避免这种情况? |
-- 作者:有点甜 -- 发布时间:2019/4/16 10:32:00 -- 参数化可以避免这种问题 |
-- 作者:有点甜 -- 发布时间:2019/4/16 10:36:00 -- 当然,那你也可以写一个函数,判断字符串是否存在不规则的字符,如果存在,就提示错误。 |
-- 作者:pc005637 -- 发布时间:2019/4/16 10:47:00 -- 不知道具体的 危险字符集 不知道具体的 危险字符集 有哪些字符需要处理。 |
-- 作者:有点甜 -- 发布时间:2019/4/16 11:25:00 -- 以下是引用pc005637在2019/4/16 10:47:00的发言:
不知道具体的 危险字符集 有哪些字符需要处理。
比如
http://www.cnblogs.com/xu-yi/p/10587889.html
|
-- 作者:chen37280600 -- 发布时间:2019/4/16 11:29:00 -- 送你一个玩意 \'思路:用正则表达式检查是否存在注入的关键词 Dim SqlString As String =" 1=1orsdf" If Regex.IsMatch(SqlString .ToLower(), "/response|group_concat|cmd|sysdate|xor|declare|db_name|char| and| or|truncate| asc| desc|drop |table|count|from|select|insert|update|delete|union|into|load_file|outfile/") Then MessageBox.show("发现SQL注入") Else MessageBox.show("SQL检测通过") End If 发现后,你要怎么处理,自行决定。鉴于注入sql都很难看,一般我就改为1=2,让它不能bb |
-- 作者:pc005637 -- 发布时间:2019/4/16 11:33:00 -- 谢谢 谢谢 |