1. --SQl
  2. --建立ren的数据库,插入一条信息
  3. create database ren
  4. go
  5. use ren
  6. go
  7. create table xinxi
  8. (
  9. code nvarchar(20) primary key,--编号
  10. name nvarchar(50)--名字
  11. )
  12. insert into xinxi values('','zhangsan')
  1. for (; ; )
  2. {
  3.  
  4. bool b = false;//利用中间变量
  5. Console.Write("请输入要修改的编号:");
  6. string no = Console.ReadLine();
  7. //查询展示
  8. SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接
  9. //操作的语句
  10. SqlCommand zhancmd = zhancnn.CreateCommand();
  11. zhancmd.CommandText = "select * from xinxi where code='" + no + "'";
  12. //执行操作的语句
  13. zhancnn.Open();
  14. SqlDataReader ss = zhancmd.ExecuteReader();
  15. if (ss.HasRows)//数据库中是否有要修改的数据
  16. {
  17. b = true;
  18. }
  19. zhancnn.Close();
  20. if (b == true)//如果有要修改的数据
  21. {
  22.  
  23. Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");
  24. string mingzi = Console.ReadLine();
  25. zhancmd.CommandText = "update xinxi set name='"+mingzi+"' where code='"+no+"'";
  26. zhancnn.Open();
  27. zhancmd.ExecuteNonQuery();
  28. zhancnn.Close();
  29. Console.WriteLine("修改完毕!");
  30. break;
  31. }
  32. else//如果没有要修改的数据
  33. {
  34. Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");
  35. }
  36.  
  37. }
  38. Console.ReadLine();

执行时,,注意,我就要输入了:

然后查询数据库,查询全部,就成为了

为了防止这种注入文字攻击,我们就需要:

  1. //C#中
  2.  
  3. for (; ; )
  4. {
  5.  
  6. bool b = false;//利用中间变量
  7. Console.Write("请输入要修改的编号:");
  8. string no = Console.ReadLine();
  9. //查询展示
  10. SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接
  11. //操作的语句
  12. SqlCommand zhancmd = zhancnn.CreateCommand();
  13. zhancmd.CommandText = "select * from xinxi where code='" + no + "'";
  14. //执行操作的语句
  15. zhancnn.Open();
  16. SqlDataReader ss = zhancmd.ExecuteReader();
  17. if (ss.HasRows)//数据库中是否有要修改的数据
  18. {
  19. b = true;
  20. }
  21. zhancnn.Close();
  22. if (b == true)//如果有要修改的数据
  23. {
  24.  
  25. Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");
  26. string mingzi = Console.ReadLine();
  27. zhancmd.CommandText = "update xinxi set name=@mingzi where code=@no;";//@变量名:占位符。注意:name=@mingzi没有引号
  28. zhancmd.Parameters.Clear();//必须先清空里面所有内容
  29. zhancmd.Parameters.Add("@mingzi",mingzi);//类似哈希表。第一个值随便取,必须跟上边一致;第二个是变量
  30. zhancmd.Parameters.Add("@no",no);
  31. zhancnn.Open();
  32. zhancmd.ExecuteNonQuery();
  33. zhancnn.Close();
  34. Console.WriteLine("修改完毕!");
  35. break;
  36. }
  37. else//如果没有要修改的数据
  38. {
  39. Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");
  40. }
  41.  
  42. }
  43. Console.ReadLine();
    //如果在执行窗口输入上跟上次一样的内容,那么输出的结果就是把”那句注入的代码“和”要改的name“ 作为一整个字符串进行处理。

C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击的更多相关文章

  1. 网络安全学习阶段性总结:SQL注入|SSRF攻击|OS命令注入|身份验证漏洞|事物逻辑漏洞|目录遍历漏洞

    目录 SQL注入 什么是SQL注入? 掌握SQL注入之前需要了解的知识点 SQL注入情况流程分析 有完整的回显报错(最简单的情况)--检索数据: 在HTTP报文中利用注释---危险操作 检索隐藏数据: ...

  2. WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

    核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Websh ...

  3. SQL注入测试平台 SQLol -2.SELECT注入测试

    前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. 一条完成 ...

  4. 【sql注入】简单实现二次注入

    [sql注入]简单实现二次注入 本文转自:i春秋社区 测试代码1:内容详情页面 [PHP] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 1 ...

  5. Sql 注入详解:宽字节注入+二次注入

    sql注入漏洞 原理:由于开发者在编写操作数据库代码时,直接将外部可控参数拼接到sql 语句中,没有经过任何过滤就直接放入到数据库引擎中执行了. 攻击方式: (1) 权限较大时,直接写入webshel ...

  6. C# 过滤sql特殊字符串方法

    1. /// <summary>    /// 过滤不安全的字符串    /// </summary>    /// <param name="Str" ...

  7. [转]SQL Server字符串处理函数大全

    select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不 ...

  8. MSSQL Server数据库的四种连接方法和sql连接字符串

    MSSQL Server数据库的四种连接方法和sql连接字符串 分类: [ 03 ] C#(131) [ 07 ] SQL Server(68) [ 01 ] .NET(189) 今天用SQL Ser ...

  9. sql sever 字符串函数

    SQL Server之字符串函数   以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student ...

  10. SQL判断字符串里不包含字母

    Oracle: 方法一:通过To_Number 函数异常来判断,因为这个函数在转换不成功的时候是报错,所以只能用存储过程包装起来. CREATE OR REPLACE FUNCTION Is_Numb ...

随机推荐

  1. git的基本使用

    1.在本地新建一个文件夹来存放代码 2.用命令行进入这个文件夹 3.git init --来创建一个代码仓库 3. 配置用户信息:用户名和 邮箱(联系作者本人沟通, 责任到人) git config ...

  2. Android Studio更新升级方法(转)

    自从2013 Google I/O大会之后,笔者就将android ide开发工具从eclipse迁移到Android Studio了,android studio一直在更新完善,为了与时俱进,我们当 ...

  3. C++之路进阶——bzoj2152(聪聪可可)

    F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser  hyxzc Logout 捐赠本站 Notice:由于本OJ建立在 ...

  4. URAL 1161 Stripies(数学+贪心)

    Our chemical biologists have invented a new very useful form of life called stripies (in fact, they ...

  5. 夺命雷公狗ThinkPHP项目之----企业网站14之文章修改页的完成

    这个其实也是挺容易的,我们思路先将栏目页给遍历出来: 这里用了catTree的方法,因为我们要对遍历出来的数据进行排序的,然后来到前端进行完成列表: <!doctype html> < ...

  6. c++实现mlp神经网络

    之前一直用theano训练样本,最近需要转成c或c++实现.在网上参考了一下其它代码,还是喜欢c++.但是看了几份cpp代码之后,发现都多少有些bug,很不爽.由于本人编码能力较弱,还花了不少时间改正 ...

  7. 电脑远程工具:mstsc

    外网远程控制:电脑远程连接在开始程序中搜:mstsc  然后直接敲IP地址 工具:dell sonicwall netextender.exe    mstsc.exe 内网远程控制:使用TeamVi ...

  8. jquery,返回到顶部按钮

    HTML: <footer> <a href="#" class="top">↑</a> </footer> C ...

  9. error:could not open D:\java\jre1.8\lib\i386\jvm.cfg

    复制一份jre到eclipse的目录下就可以了.

  10. 搭建HTTP Live Streaming直播系统

    最近,需要将苹果的HTTP Live Streaming系统搭建起来.完全没有头绪,故第一步就是学习. 一.学习资料 官网资料 1. http://developer.apple.com/resour ...