码迷,mamicode.com
首页 > 数据库 > 详细

通过SqlParameter防止注入式攻击

时间:2015-09-09 14:45:37      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

新增一段代码:

public void Update(M_aboutUs model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update tb_aboutUs set ");
            strSql.Append("aboutUs=@aboutUs,");
            strSql.Append("contactUs=@contactUs,");
            strSql.Append("lowPolicy=@lowPolicy,");
            strSql.Append("otherInfo=@otherInfo,");
            strSql.Append("remark=@remark");
            strSql.Append(" where Id=@Id ");
            SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@Id", SqlDbType.Int, 4), new SqlParameter("@aboutUs", SqlDbType.NText, 0x15f90), new SqlParameter("@contactUs", SqlDbType.NText, 0x15f90), new SqlParameter("@lowPolicy", SqlDbType.NText, 0x15f90), new SqlParameter("@otherInfo", SqlDbType.NText), new SqlParameter("@remark", SqlDbType.NText) };
            parameters[0].Value = model.Id;
            parameters[1].Value = model.aboutUs;
            parameters[2].Value = model.contactUs;
            parameters[3].Value = model.lowPolicy;
            parameters[4].Value = model.otherInfo;
            parameters[5].Value = model.remark;
            DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
        }

  参数使用@变量名作形参,在实例化SqlParameter的时候指定形实参对应,限定参数类型及大小,从而保证数据安全;

 

通用-举个栗子:

SqlParameter[] paramerters = new SqlParameter[ParametersName.Length];
for (int i = 0; i < ParametersName.Length; i++)
{
paramerters[i] = new SqlParameter(ParametersName[i], sqlDbType[i]);
paramerters[i].Direction = parameterDirection[i];
paramerters[i].Value = obj[i];
}

  返回一个数据集。在底层,如果采用的是mvc模式下的开发,建议将集合转成list泛型,方便后面调用可以使用LINQ,在类型上操作比较便捷;

 

PS:有疑问请置邮件到“ penglong@plstyle.click ”, 欢迎讨论!

通过SqlParameter防止注入式攻击

标签:

原文地址:http://www.cnblogs.com/sunshine-wy/p/4794639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!