ADO.NET注入攻击和防御

当在添加程序中注入攻击时在控制台应用程序中可以这样写:

请输入编号:U006

请输入用户名:无敌

请输入密码:1234

请输入昵称:呵呵

请输入性别:True

请输入生日:2000-1-1

请输入民族:N004'>update Users set PassWord='0000';--

添加成功!

这样可以在添加程序中将里面的内容的密码都改为0000.

有攻击就有防御所以:

可以在里面添加程序就可以达到防御效果:

string nation = Console.ReadLine();
conn.Open();
cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a", ucode);
cmd.Parameters.AddWithValue("@b", username);
cmd.Parameters.AddWithValue("@c", password);
cmd.Parameters.AddWithValue("@d", nickname);
cmd.Parameters.AddWithValue("@e",sex);
cmd.Parameters.AddWithValue("@f", birthday);
cmd.Parameters.AddWithValue("@g", nation);
int count = cmd.ExecuteNonQuery();
conn.Close();

当将数据转换成@a这种形式时,就可以防御了。

原文地址:https://www.cnblogs.com/yujiamin123/p/7126804.html