在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击

如:输入班级值

--:代表后边内容都被注释掉了

防止SQL注入攻击方法

再给命令发送SQL语句的时候分两次发送,把SQL语句拆成两块,用户输入的是一块;本身写好的是一块,第一次把CommandText里写的sql语句发过去;第二次把变量值发过去,进行匹配

cmd.CommandText = "update Users set PassWord=@pwd"
cmd.Parameters.AddWithValue("@pwd",pwd);

栗子:

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace Update
{
class Program
{
static void Main(string[] args)
{
bool has = false;//判断用输入的数据是否存在,true表示存在,false不存在 Console.Write("请输入要修改的用户名:");
string uname = Console.ReadLine(); SqlConnection conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select *from Users where UserName = '" + uname + "'"; conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows) //如果查到此用户信息
{
has = true;//将中间变量更改为true,证明有此条信息
}
conn.Close(); if (has)//如果有此条信息,那么需要进行删除判断
{
Console.Write("已查到此用户信息,是否要修改?(Y/N)");
string u = Console.ReadLine(); //记录用户的操作
if (u.ToUpper() == "Y")//判断用户操作,如果是Y,说明要删除
{
Console.Write("请输入要修改的密码:");
string pwd = Console.ReadLine();
Console.Write("请输入要修改的昵称:");
string nick = Console.ReadLine();
Console.Write("请输入要修改的性别:");
string sex = Console.ReadLine();
Console.Write("请输入要修改的生日:");
string bir = Console.ReadLine();
Console.Write("请输入要修改的民族:");
string nation = Console.ReadLine();
Console.Write("请输入要修改的班级:");
string cla = Console.ReadLine(); //使**=一个变量
cmd.CommandText = "update Users set PassWord=@pwd,NickName=@nick,Sex=@sex,Birthday=@bir,Nation=@nation,Class=@cla where UserName=@uname";
cmd.Parameters.Clear();//清除绑定的变量,最好每次用参数集合前写一个清除
//格式:cmd.Parameters.AddWithValue("@**",**);有多少列绑多少个
cmd.Parameters.AddWithValue("@pwd", pwd);
cmd.Parameters.AddWithValue("@nick", nick);
cmd.Parameters.AddWithValue("@sex", sex);
cmd.Parameters.AddWithValue("@bir", bir);
cmd.Parameters.AddWithValue("@nation", nation);
cmd.Parameters.AddWithValue("@cla", cla);
cmd.Parameters.AddWithValue("@uname", uname); conn.Open();
//执行操作,并记录受影响的行数
cmd.ExecuteNonQuery();
conn.Close();
Console.WriteLine("修改成功!");
}
else//用户选择不删除
{
Console.WriteLine("修改取消!");
}
}
else//未查到用户信息,判断has=false
{
Console.WriteLine("用户名输入错误!未查到此用户信息!");
} Console.ReadKey(); }
}
}

ADO.NET防止字符串攻击方法的更多相关文章

  1. php防攻击方法

    php防攻击方法   更多答案 请参考 @如何有效防止XSS攻击/AJAX跨域攻击 我说下防止非法用户的一些常用手段吧 1 前端的js验证: 我认为js验证只是一种用户体验的提升,对普通用户群体的简单 ...

  2. 常见的HTTPS攻击方法

    0x00 背景 研究常见的https攻击方法 Beast crime breach,并针对https的特性提出一些安全部署https的建议. 针对于HTTPS的攻击,多存在于中间人攻击的环境中,主要是 ...

  3. linux上redis安装配置及其防漏洞配置及其攻击方法

    Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令:  yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...

  4. ref:一种新的攻击方法——Java Web表达式注入

    ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01 ...

  5. 格式化字符串攻击原理及示例.RP

    格式化字符串攻击原理及示例 一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型. 对于这种情况,可以使用省略号指定参数表. 带有省略号的 ...

  6. DDoS的攻击方法

    DDoS攻击 DDoS攻击的方法 攻击网络带宽资源 我们可以采用对目标的网络带宽资源进行攻击,目的就是浪费对方有限的网络带宽资源,使得目标服务出现网络滞缓直至网络带宽资源匮乏,无法访问或访问速度慢. ...

  7. DDOS攻击与防御简单阐述,列出DDOS的攻击方法和防御方法

    参考1:https://www.hi-linux.com/posts/50873.html#%E7%BD%91%E7%BB%9C%E5%B1%82-ddos-%E6%94%BB%E5%87%BB 什么 ...

  8. Objective-C精选字符串处理方法

    无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的.简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解 ...

  9. 转:ADO.NET连接字符串

    名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Syb ...

随机推荐

  1. jQuery构造函数init参数分析(二)

    接着上一篇随笔讨论. 如果selector是其他字符串情况就比较多了比较复杂了 // Handle HTML strings if ( typeof selector === "string ...

  2. 设置时间 new Date

    1.标准格式下的时间是object ,操作时可以通过 var cDate=new Date(startTime.getTime());来复制当前日期避免操作给初始日期带来影响 2. 以月为单位计算想要 ...

  3. select中无法使用click的处理

    今天工作用到了select,想要给option添加click点击事件,可是却没有任何效果,百度了才发现,原来竟然是不支持呀! 众所周知(其实我才知道哎),在IE里, select的option是不支持 ...

  4. C#的3DES加密解密算法

    C#类如下: using System; using System.Collections.Generic; using System.Text; using System.Security.Cryp ...

  5. Gartner:用自适应安全架构来应对高级定向攻击

    发表于2015-06-24   摘要:当前的防护功能难以应对高级的定向攻击,由于企业系统所受到的是持续攻击,并持续缺乏防御力,面向“应急响应”的特别方式已不再是正确的思维模式,Garnter提出了用自 ...

  6. IDA调试android so文件.init_array和JNI_OnLoad

    我们知道so文件在被加载的时候会首先执行.init_array中的函数,然后再执行JNI_OnLoad()函数.JNI_Onload()函数因为有符号表所以非常容易找到,但是.init_array里的 ...

  7. Android中的XML解析

    在安卓中主要有三种XML文档解析方式:DOM(Document Object Model), SAX(Simple API for XML), PULL 他们的主要特点如下表:   特点 主要类 DO ...

  8. 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】

    楼主2007年从一家天津的三流大学毕业.毕业前报了一个职位培训,毕业后可以推荐工作.因为推荐的公司都是北京的,所以就来北京了. 找了一个月工作,没有找到要我的,就在出租屋里宅了起来,打着考研的旗号,又 ...

  9. nodejs API

    1.querystring参数处理 序列化 > querystring.stringify({'name':'scott',course:['jade','node'],from:''}) 'n ...

  10. 学习 HTML5-目录

    1.学习 HTML5-页面结构 2.HTML5标记 3.HTML5机构化语义元素 4.HTML5表单 5.HTML5媒体元素:Audio和Video 6.HTML5绘图API 7.HTML5 Canv ...