首页 > 代码库 > 对数据库进行的字符串攻击
对数据库进行的字符串攻击
完整修改查询:
输入要删除的用户名,提示有没有此条数据,如果有而后提示是否确定要删除
添加:
using System.Data.SqlClient;
而后:
namespace 完整修改查询_字符串攻击 { 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,说明要删除 { //下面的代码是真正删除此条数据 cmd.CommandText = "delete from Users where UserName = ‘" + uname + "‘"; int c = 0; try { conn.Open(); c = cmd.ExecuteNonQuery(); } catch { Console.WriteLine("服务器连接失败!!"); } finally { conn.Close(); } if (c > 0)//判断是否删除成功 Console.WriteLine("删除成功!"); else Console.WriteLine("删除失败!!"); } else//用户选择不删除 { Console.WriteLine("删除取消!"); } } else//未查到用户信息,判断has=false { Console.WriteLine("用户名输入错误!未查到此用户信息!"); } Console.ReadKey(); } } }
防止字符串攻击:
使用 @变量名
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("@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(); } } }
对数据库进行的字符串攻击
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。