您的位置:首页 > 数据库

为什么要参数化执行SQL语句呢?

2017-08-19 17:58 681 查看

C#参数化执行SQL语句,防止漏洞攻击本文以MYSQL为例【20151108非查询操作】

为什么要参数化执行SQL语句呢?

一个作用就是可以防止用户注入漏洞。

简单举个列子吧。

比如账号密码登入,如果不用参数,

写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧

sql:select id,pw where id='inputID' and pw='inputPW';

一般情况没什么问题,但如果用户输入的id或PW带 ‘ ,这是可能就会出现漏洞,bug了

比如用户输入的id是: 1‘ or ’1‘=‘1

这是sql语句执行的是:select id,pw where id='1‘ or ’1‘=‘1 ‘ and pw='inputPW';

那数据库里的所有账号密码都符合这个条件了。

简而言之,用户可以通过 ' 来改变你SQL的执行。

参数化就可以避免这个问题了。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: