2个回答
展开全部
用Parameter,注入漏洞绝对不会发生,如果会发生那就是ADO.NET有漏洞,而不是数据库或你的代码有问题。因为使用 Parameter,数据库、ADO.NET、你的代码,这3方的责任区域完全划分清楚,而处理注入漏洞则完全在ADO.NET的责任区域,你不需要插手也最好不要插手,否则只会越弄越乱。
Parameter承诺无论你传输什么值,都以指定类型按照一个参数的方式传入,不会破坏那一个参数的结构而变成参数外的代码,那就十分足够了。
==========================================
这个论断,应当说大多数情况下是正确的,
但是,如果你用的是存储过程,而存储过程中也存在着 通过连接字符串生成SQL语句的话, 那么Parameter将起不到保护作用. 这要求我们每一次进行SQL语句拼接时,都要对注入进行防范,一个不小心就留下漏洞了.
注入漏洞发生在: 借用用户输入拼接生成SQL语句的地方
Parameter承诺无论你传输什么值,都以指定类型按照一个参数的方式传入,不会破坏那一个参数的结构而变成参数外的代码,那就十分足够了。
==========================================
这个论断,应当说大多数情况下是正确的,
但是,如果你用的是存储过程,而存储过程中也存在着 通过连接字符串生成SQL语句的话, 那么Parameter将起不到保护作用. 这要求我们每一次进行SQL语句拼接时,都要对注入进行防范,一个不小心就留下漏洞了.
注入漏洞发生在: 借用用户输入拼接生成SQL语句的地方
参考资料: 开发者在线http://www.builder.com.cn/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询