码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-08-18 11:50:07      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:查询   条件   url   攻击   漏洞   一个   输入   htm   就会   

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语句呢?

标签:查询   条件   url   攻击   漏洞   一个   输入   htm   就会   

原文地址:http://www.cnblogs.com/chenpan/p/7388776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!