3
|
Arseni Mourzenko · 技术社区 · 15 年前 |
![]() |
1
7
ADO.NET SqlClient驱动程序将 不 做任何替换!这是一个常见的误解-它避免了更换任何东西的麻烦。
它所做的就是用参数传递查询
从来没有进行过替换,客户端也没有“将完整的SQL语句串在一起”这样的事情。如果ADO.NET运行时就是这样做的,那么它也很容易受到SQL注入攻击。 |
![]() |
2
0
简而言之,使用它会在SqlParameterCollection的末尾添加一个值,同时使您的参数值不受SQL注入的影响。 MSDN文档没有记录该方法的确切内部行为,我怀疑它是否符合您所描述的。但是,如果愿意,可以使用查看方法的源代码 Reflector 看看它到底是干什么的。 |