完整修改和删除以及防字符串注入攻击

Posted 马MZJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完整修改和删除以及防字符串注入攻击相关的知识,希望对你有一定的参考价值。

完整修改:

 1 //1、接收用户输入进来的学生编号
 2                 Console.Write("请输入要修改的学生编号:");
 3                 string Scode = Console.ReadLine();
 4 
 5                 //2、判断有无此学生
 6                 SqlConnection conn = new SqlConnection("server=.;database=Data0425;user=sa;pwd=123;");
 7                 SqlCommand cmd = conn.CreateCommand();
 8                 cmd.CommandText = "select *from Student where code =‘" + Scode + "";
 9                 conn.Open();
10                 SqlDataReader dr = cmd.ExecuteReader();
11                 //3、有此学生,那么继续修改操作,如果没有,提示无此学生信心,无法修改
12                 if (dr.HasRows)
13                 {
14                     HasStu = true;
15                 }
16                 else
17                 {
18                     HasStu = false;
19                 }
20                 conn.Close();
21 
22                 if (HasStu)
23                 {
24                     Console.WriteLine("已查询到此学生信息,请进行修改:");
25                     Console.Write("请输入更改后的学生姓名:");
26                     string Sname = Console.ReadLine();
27                     Console.Write("请输入更改后的学生性别:");
28                     bool Ssex = Convert.ToBoolean(Console.ReadLine());
29                     Console.Write("请输入更改后的学生生日:");
30                     DateTime Sbirthday = Convert.ToDateTime(Console.ReadLine());
31                     Console.Write("请输入更改后的学生成绩:");
32                     decimal Sscore = Convert.ToDecimal(Console.ReadLine());
33 
34                     cmd.CommandText = "update student set name=‘" + Sname + "‘,sex=‘" + Ssex + "‘,birthday=‘" + Sbirthday + "‘,score=" + Sscore                        + " where code = ‘" + Scode + "";
35 
36                     conn.Open();
37                     cmd.ExecuteNonQuery();
38                     Console.WriteLine("修改成功!");
39                     conn.Close();
40                     break;
41                 }
42                 else
43                 {
44                     Console.WriteLine("查无此学生,请重新输入!按任意键继续...");
45                     Console.ReadKey();
46                     Console.Clear();
47                 }
48             }
49 
50             Console.ReadLine();

删除与修改的判断一样,只是吧修改语句改成删除语句。

 

 

 

防止字符串注入攻击:

1 cmd.CommandText = "update student set [email protected],[email protected],[email protected],[email protected] where code = @Scode";//sql语句中用@索引代替本该添加的数  据。
2 cmd.Parameters.Clear();//用之前清空一下集合
3 cmd.Parameters.Add("@Sname", Sname);//向集合内添加数据,前面带@的是索引号,后面是添加的数据,所有类型都可以添加。
4 cmd.Parameters.Add("@Ssex", Ssex);
5 cmd.Parameters.Add("@Sbirthday", Sbirthday);
6 cmd.Parameters.Add("@Sscore", Sscore);
7 cmd.Parameters.Add("@Scode", Scode);

 

以上是关于完整修改和删除以及防字符串注入攻击的主要内容,如果未能解决你的问题,请参考以下文章

完整修改删除,防止数据库字符串攻击

如何防止代码注入攻击在PHP

web前端怎么防止代码注入攻击

怎么修改语句防sql注入攻击,我想把密码换成列表的形式,怎么操作?

荐PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

JDBC编程之预编译SQL与防注入式攻击以及PreparedStatement的使用教程