Foxtable(狐表)用户栏目专家坐堂 → 参数化SQL语句可以避免SQL注入吗?


  共有3376人关注过本帖树形打印复制链接

主题:参数化SQL语句可以避免SQL注入吗?

帅哥哟,离线,有人找我吗?
pc005637
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
参数化SQL语句可以避免SQL注入吗?  发帖心情 Post By:2019/4/16 10:07:00 [只看该作者]

实际工作,批量导入第三方数据库的字符串列时,采用拼接SQL语句的方式,如果对方字符串出现一些 ‘’ & + 等SQL特殊字符中,会提示语句有错误。如果采用参数化SQL语句能否避免这种情况?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 10:32:00 [只看该作者]

参数化可以避免这种问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 10:36:00 [只看该作者]

当然,那你也可以写一个函数,判断字符串是否存在不规则的字符,如果存在,就提示错误。


 回到顶部
帅哥哟,离线,有人找我吗?
pc005637
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
不知道具体的 危险字符集  发帖心情 Post By:2019/4/16 10:47:00 [只看该作者]

不知道具体的 危险字符集  有哪些字符需要处理。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/16 11:25:00 [只看该作者]

以下是引用pc005637在2019/4/16 10:47:00的发言:
不知道具体的 危险字符集  有哪些字符需要处理。

 

比如

 

http://www.cnblogs.com/xu-yi/p/10587889.html

 


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
谢谢  发帖心情 Post By:2019/4/16 11:33:00 [只看该作者]

谢谢

 回到顶部