为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建参数化SQL查询?我为什么要?

如何创建参数化SQL查询?我为什么要?

胡说叔叔 2019-05-28 17:25:12
如何创建参数化SQL查询?我为什么要?我听说“每个人”都在使用参数化SQL查询来防止SQL注入攻击,而不必为每一条用户输入进行操作。你怎么做到这一点?使用存储过程时是否自动获得此信息?所以我理解这是非参数化的:cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz)这会参数化吗?cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz)或者我是否需要做更广泛的事情以保护自己免受SQL注入?With command    .Parameters.Count = 1     .Parameters.Item(0).ParameterName = "@baz"     .Parameters.Item(0).Value = fuzEnd With除安全考虑因素外,使用参数化查询还有其他优点吗?更新:这篇伟大的文章与Grotok引用的一个问题相关联。http://www.sommarskog.se/dynamic_sql.html
查看完整描述

4 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

绝对是最后一个,即

或者我是否需要做更广泛的......?(是cmd.Parameters.Add()

参数化查询有两个主要优点:

  • 安全性:这是避免SQL注入漏洞的好方法

  • 性能:如果您经常使用不同的参数调用相同的查询,则参数化查询可能允许数据库缓存您的查询,这是性能增益的重要来源。

  • 额外:您不必担心数据库代码中的日期和时间格式问题。同样,如果您的代码将在具有非英语语言环境的计算机上运行,则不会出现小数点/小数点逗号的问题。


查看完整回答
反对 回复 2019-05-28
  • 4 回答
  • 0 关注
  • 917 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信