前几天做了一些系统,感觉sql的一些写法不安全,特别当你传的是字符串的sql语句,就不安全。找了好久,找到了一些方法
public static int Add(RoleInfo role)
{
string sql = string.Format("insert into [RoleInfo] values ('{0}','{1}')", role.RoleName, role.RoleDesc);
int row = GetConnection.NoSelect(sql);
return row;
}
这样的写法会安全点。
而传统的方法是
public static int InsertRoleInfo(RoleInfo role)
{
string sql = "INSERT INTO RoleInfo VALUES('"+role.RoleName+"','"+role.RoleDesc+"')";
int row = GetConnection.NoSelect(sql);
return row;
}
你想想看,如果RoleInfo里面的roleName的字符串是“你'delete from Id'好”用传统的方法去执行,执行的时候就会报错了。
本文探讨了在使用SQL语句时如何避免SQL注入攻击的问题。通过对比两种不同的SQL语句构造方式,强调了使用参数化查询的重要性。举例说明了不当的字符串拼接可能导致的安全隐患。
1351

被折叠的 条评论
为什么被折叠?



