c# 传参的方式能完全防止sql注入吗?

 我来答
惠企百科
2022-11-15 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

c# 传参的方式能够完全防止sql注入,具体步骤如下:

/* 
* C#防止SQL注入式攻击 
* Author:ICE FROG 
* TIME:2016/4/20 
*/

/* 
* SQL注入式攻击就是值通过SQL执行语句的漏洞进行百分百匹配条件的攻击 

* 那么在执行语句的where语句后面的条件就永远为true 


* C#在数据库的这一块漏洞上添加了一个类来处理这个问题: 
* SqlParameter - using System.Data.SqlClient; 

* 原理就是让where条件后面字段不和整个执行语句化为一个字符串,而是以通过一个参数的形式传递进去 。

* 这样可以达到两个效果: 

* 第一就是避免注入式攻击 

* 第二就是防止非法字符导致软件崩溃 

* 那么我们需要把原来的sql执行语句比如:string.format(“select * from user where id=’{0}’ and pwd = ‘{1}’”,id,pwd) 。

* 更改为: “select * from user where id = @id and pwd = @pwd”; 

* 我们使用了@名 代替了占位符,而这个@名 原先是不存在不需要声明的。只需要在后面使用上面那么类声明一下就ok 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式