码迷,mamicode.com
首页 > Web开发 > 详细

ADO.NET字符串注入式攻击与防御

时间:2017-04-24 18:16:42      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:round   程序   alt   from   通过   输入   span   png   占位符   

一、字符串注入攻击

所谓sql字符串注入式攻击就是在用户输入界面输入一串sql语句,来改变C#中连接数据库要执行的sql语句

通过你写的程序,直接来执行我想要执行的sql语句

例如:在这么一个程序中,sname是需要用户输入的内容。技术分享

在用户输入界面输入 

a‘);update 表名 set 列名 =‘字段名称;--

假如你在输入时输入了这句代码:a‘);update student set sname =‘朱利军;--

原理:用户输入的代码将c#中的sql语句中的sname替换掉了,就变成了下边的黑客想执行的sql语句。

insert into Student values(‘"+sno+"‘,‘a‘);

update Student set Sname =‘朱利军;--‘)

二、防御

将C#中操作数据库执行的sql语句中的字符串拼接换成占位符

技术分享

在防御之后再用之前的放法进行攻击

用占位符进行防御之后不会改变表的其他内容,会将这句代码原封不动的存到数据库中而不会改变c#中的sql语句。

注意:sql语句中带模糊查询的防御方法

将‘%哈哈%‘  全部用占位符占位。例子如下:

cmd.CommandText = "select*from Subject where SubjectName like @a";

 cmd.Parameters.Clear();   

 cmd.Parameters.AddWithValue("@a","%"+subname+"%");

ADO.NET字符串注入式攻击与防御

标签:round   程序   alt   from   通过   输入   span   png   占位符   

原文地址:http://www.cnblogs.com/zhulijun/p/6758138.html

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