当前位置:  开发笔记 > 编程语言 > 正文

参数绑定:引擎盖下会发生什么?

如何解决《参数绑定:引擎盖下会发生什么?》经验,为你挑选了1个好方法。

.NET,Java和其他各种语言的高级数据库API通常提供称为预处理语句和参数绑定的技术,而不是将纯文本命令发送到数据库服务器.我想知道的是当你执行这样的语句时会发生什么:

SqlCommand cmd = new SqlCommand("GetMemberByID");
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@ID", memberID);
para.DbType = DbType.Integer;
cmd.Parameters.Add(param);

我知道这是一种最佳做法.SQL注入攻击以这种方式最小化.但是当你执行这些语句时,究竟发生了什么呢?最终结果仍然是SQL安全字符串吗?如果没有,最终结果是什么?这足以防止SQL注入攻击吗?



1> Eli Courtwri..:

有关预准备语句的MySQL手册页提供了大量信息(应该适用于任何其他RDBMS).

基本上,您的语句会提前解析和处理,并且参数将单独发送,而不是与SQL代码一起处理.这消除了SQL注入攻击,因为在参数设置之前解析了SQL.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有