为什么要参数化执行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语句呢?的主要内容,如果未能解决你的问题,请参考以下文章