三、ADO.Net基础【05】SQL注入漏洞(SQLInjection)

使用字符串拼接的方式把sql语句所需参数拼接到将要执行的sql语句中(参数一般只sql语句的过滤条件),对于用户的恶意输入可能导致不一的查询结果

例如:一个登录的例子(UserName和Password是用户的输入的用户名和密码)。

“select count(*)  from T_Users where UserName=’ ”+UserName+” ‘ and Password= ‘ ”+Password+” ‘ ”;

C#这段代码指C#将要 发送给数据库执行的代码。如果count(*)的结果大于等于1则表示用户的用户名和密码是存在并且匹配的。对于正常用户的输入这个中方法是可行的,但是如果用户的密码输入:a' or 'a'='a   那么无论用户的用户名和密码是否存在是否匹配他都会登录成功。这就是sql注入漏洞。

posted @ 2017-12-28 20:13  LolitaGIS的笔记  阅读(347)  评论(0编辑  收藏  举报