存储过程是否可以完全屏蔽sql 注入

使用存储过程是否可以完全屏蔽sql注入,用不用对参数再进行一次过滤。... 使用 存储过程是否可以完全屏蔽sql 注入,用不用对参数再进行一次过滤。 展开
 我来答
以画屏屏8748
2008-10-02 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3326万
展开全部
用Parameter,注入漏洞绝对不会发生,如果会发生那就是ADO.NET有漏洞,而不是数据库或你的代码有问题。因为使用 Parameter,数据库、ADO.NET、你的代码,这3方的责任区域完全划分清楚,而处理注入漏洞则完全在ADO.NET的责任区域,你不需要插手也最好不要插手,否则只会越弄越乱。

Parameter承诺无论你传输什么值,都以指定类型按照一个参数的方式传入,不会破坏那一个参数的结构而变成参数外的代码,那就十分足够了。
==========================================
这个论断,应当说大多数情况下是正确的,
但是,如果你用的是存储过程,而存储过程中也存在着 通过连接字符串生成SQL语句的话, 那么Parameter将起不到保护作用. 这要求我们每一次进行SQL语句拼接时,都要对注入进行防范,一个不小心就留下漏洞了.

注入漏洞发生在: 借用用户输入拼接生成SQL语句的地方

参考资料: 开发者在线http://www.builder.com.cn/

离戏论
2008-10-02 · TA获得超过394个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:80.8万
展开全部
要的
道先在调用存储过程的时候,就会用到

EXECUTE等语句,如果SQL语句没有任何过滤,那么,语句构建的好一点,就不用执行存储过程,就直接执行构造的恶意SQL语句了

一般将用户提交的数据,如果是数字型的,就验证是否为数字,字符型的就将'号过滤掉,就OK了

还有如果有获得客户端IP地址的地方,记得将IP也过滤一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式