C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击

时间:2022-09-08 00:17:11
--SQl中
--建立ren的数据库,插入一条信息
create database ren
go
use ren
go
create table xinxi
(
code nvarchar(20) primary key,--编号
name nvarchar(50)--名字
)
insert into xinxi values('','zhangsan')
            for (; ; )
{ bool b = false;//利用中间变量
Console.Write("请输入要修改的编号:");
string no = Console.ReadLine();
//查询展示
SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接
//操作的语句
SqlCommand zhancmd = zhancnn.CreateCommand();
zhancmd.CommandText = "select * from xinxi where code='" + no + "'";
//执行操作的语句
zhancnn.Open();
SqlDataReader ss = zhancmd.ExecuteReader();
if (ss.HasRows)//数据库中是否有要修改的数据
{
b = true;
}
zhancnn.Close();
if (b == true)//如果有要修改的数据
{ Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");
string mingzi = Console.ReadLine();
zhancmd.CommandText = "update xinxi set name='"+mingzi+"' where code='"+no+"'";
zhancnn.Open();
zhancmd.ExecuteNonQuery();
zhancnn.Close();
Console.WriteLine("修改完毕!");
break;
}
else//如果没有要修改的数据
{
Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");
} }
Console.ReadLine();

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

C#和SQl    注入字符串的攻击  和   防止注入字符转的攻击

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

C#和SQl    注入字符串的攻击  和   防止注入字符转的攻击

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

//C#中 

for (; ; )
{ bool b = false;//利用中间变量
Console.Write("请输入要修改的编号:");
string no = Console.ReadLine();
//查询展示
SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接
//操作的语句
SqlCommand zhancmd = zhancnn.CreateCommand();
zhancmd.CommandText = "select * from xinxi where code='" + no + "'";
//执行操作的语句
zhancnn.Open();
SqlDataReader ss = zhancmd.ExecuteReader();
if (ss.HasRows)//数据库中是否有要修改的数据
{
b = true;
}
zhancnn.Close();
if (b == true)//如果有要修改的数据
{ Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");
string mingzi = Console.ReadLine();
zhancmd.CommandText = "update xinxi set name=@mingzi where code=@no;";//@变量名:占位符。注意:name=@mingzi没有引号
zhancmd.Parameters.Clear();//必须先清空里面所有内容
zhancmd.Parameters.Add(
"@mingzi",mingzi);//类似哈希表。第一个值随便取,必须跟上边一致;第二个是变量
zhancmd.Parameters.Add("@no"
,no);
zhancnn.Open();
zhancmd.ExecuteNonQuery();
zhancnn.Close();
Console.WriteLine("修改完毕!");
break;
}
else//如果没有要修改的数据
{
Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");
} }
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&quot ...

  7. &lbrack;转&rsqb;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. Android开发--页面切换

    1.创建android项目.项目文档如下 2.activity_main布局,Androidv4包里自带的,既然是自带的那么直接拿来用就可以了,当然前提是你得工程里有v4包 <LinearLay ...

  2. HDU 4430 Yukari&&num;39&semi;s Birthday &lpar;二分&plus;枚举&rpar;

    题意:给定一个n(18 ≤ n ≤ 10^12),一个等比数列k + k^2 + .......+ k^r = n 或者 = n-1,求出最小的k*r,如果最小的不唯一,则取r更小的 分析:两个未知数 ...

  3. Linux下安装Oracle11g服务器&lpar;转&rpar;

    安装环境 Linux服务器:SuSe10 sp2 64位 Oracle服务器:Oracle11gR2 64位 系统要求 Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内存 ...

  4. 数据库 mysql 语句

    LAMP: Linux系统 A阿帕奇服务器 Mysql数据库 Php语言 mysql:常用代码 create table CeShi1( Uid varchar(50) primary key, Pw ...

  5. 日期插件-flatpickr

    github的仓库地址:https://github.com/chmln/flatpickr 手册地址:http://www.htmleaf.com/Demo/201608213895.html    ...

  6. 关于swagger——WebApi一个controller中出现多个Get是出现错误的处理

    如 /// <summary> /// 测试处理 /// </summary> public class TestController : ApiController { // ...

  7. matplotlib 中文显示问题

    matplotlib 默认显示不了中文,如果想显示中文,通过下面代码设置: import matplotlib #指定默认字体 matplotlib.rcParams['font.sans-serif ...

  8. 2018&period;09&period;22 上海大学技术分享 - An Introduction To Go Programming Language

    老实说笔者学习 Go 的时间并不长,积淀也不深厚,这次因缘巧合,同组的同事以前是上海大学的开源社区推动者之一,同时我们也抱着部分宣传公司和技术分享的意图,更进一步的,也是对所学做一个总结,所以拟定了这 ...

  9. HDFS2&period;0架构以及HA详解

    HDFS2.0概述 一背景,Hadoop1.0中HDFS和MapReduce在高可用,扩展性等方面存在问题    HDFS存在问题,1,NameNode单点故障,难以应用于在线场景.2,NameNod ...

  10. vss 日文文件路径的名字在中文系统下乱码

    解决方式:tools-font 文字设置 日本語