zoukankan      html  css  js  c++  java
  • ADO.NET字符串注入式攻击与防御

    一、字符串注入攻击

    所谓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+"%");

  • 相关阅读:
    node03- NODE入门
    node02- NPM的使用
    node01- 初识、特点、
    Linux中的split命令,文件切割
    修改jar包中文件
    ByteBuf 使用
    Stream的flatmap与map异同的理解
    h5底部输入框被键盘遮挡问题
    div给我画条龙
    contains 了解
  • 原文地址:https://www.cnblogs.com/zhulijun/p/6758138.html
Copyright © 2011-2022 走看看