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

Posted 陈晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要参数化执行SQL语句呢?相关的知识,希望对你有一定的参考价值。

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的执行。

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

 

以上是关于为什么要参数化执行SQL语句呢?的主要内容,如果未能解决你的问题,请参考以下文章

执行sql语句时参数化,有啥好处

sql参数查询

如何防止网站不被SQL注入攻击

C# 中参数化拼接SQL语句插入数据库

带参数的sql查询语句

参数化sql查询语句