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

完整修改:

 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);
时间: 2024-10-06 19:21:43

完整修改和删除以及防字符串注入攻击的相关文章

ADO.NET 完整修改、删除、防字符串攻击

首先,我先把昨天所做的人事管理系统进行了优化,将其完善成为了一个更符合实际的系统.将修改及删除数据的数据库操作前面添加了一个查询语句,这样,在实际操作时,如果数据库中没有该条数据,则程序不会执行接下来的删除和修改操作,减少了程序的实际工作量.具体代码如下: 删除数据: while (true) { bool has = false; //提示用户需要操作的内容 Console.WriteLine("请输入要删除的用户名:"); string Uname = Console.ReadLi

ado.not--数据库防字符串注入攻击学习及 练习

数据库防字符串注入攻击:cmd.CommandText = "update student set [email protected],[email protected],[email protected],[email protected] where code = @Scode";cmd.Parameters.Clear();                ---------一个集合cmd.Parameters.Add("@Sname", Sname);cmd.

防字符串注入攻击

使用Parameters集合和占位符(例如:@name) 例如: cmd.CommandText = "update AdoStudent set [email protected],[email protected] where code='" + xiugai + "'";cmd.Parameters.Clear();cmd.Parameters.Add("@name", name);cmd.Parameters.Add("@sex

PHP防SQL注入攻击

PHP防SQL注入攻击 收藏 没有太多的过滤,主要是针对php和mysql的组合. 一般性的防注入,只要使用php的 addslashes 函数就可以了. 以下是一段copy来的代码: PHP代码 $_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc()) { if (is_array($content))

PHP几个防SQL注入攻击自带函数区别

SQL注入攻击是黑客攻击网站最常用的手段.如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击.SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除.为了防止SQL注入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全上的初步处理,也即Magic Quotes.(php.ini magic_quotes_gpc).如果magic_quotes_gpc选项启用,那么输入的字符串中的单引号,双引号和

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

我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么? 一.为何要优先使用PDO? PHP手册上说得很清楚: Prepared statements and stored procedures Many of the more mature databases support the concept of prepared statemen

ADO.NET 占位符(防SQL 注入攻击)

当在添加程序中注入攻击时在控制台应用程序中可以这样写: 请输入编号:U006 请输入用户名:无敌 请输入密码:1234 请输入昵称:呵呵 请输入性别:True 请输入生日:2000-1-1 请输入民族:N004');update Users set PassWord='0000';-- 添加成功! 这样,不仅添加成功一条数据,而且数据库中Users表里的所有数据的密码都被修改成了0000.数据被篡改了,数据库被成功注入攻击. 那么我们怎么来防御这种注入攻击呢? 其实很简单,只需要修改下程序,在添

SQL防漏洞注入攻击小结

3///   4/// 判断字符串中是否有SQL攻击代码  5///   6/// 传入用户提交数据  7/// true-安全:false-有注入攻击现有:  8public bool ProcessSqlStr(string inputString)  9{ 10    string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|su

防sql注入攻击

这两天看了个防sql注入,觉得有必要总结一下: 首先需要做一些php的安全配置: 1 在php.ini 中把display_errors改成OFF display_errors = OFF 或在php文件前加入 error_reporting(0) 2 关闭一些“坏功能” 1)关闭magic quotes功能 在php.ini 把magic_quotes_gpc = OFF 避免和addslashes等重复转义 2)关闭register_globals = Off 在php.ini 把regis