请大家详细列举!如(查询文本框,地址栏,等等)。本人有点不懂,最近做了个网站挂到网上了,主管让我赶紧让我防sql注入,但是我想这是asp.net 也不是asp啊 就在查询文本框做个过滤不就行么?请大家给我点建议!谢谢大家了!
解决方案 »
- 易采网站数据采集系统 .net 如何把采集结果保存到网站服务器!急!
- asp.net
- 如何实现类似锁屏的效果
- 急!!空间的根目录已经有一个web.config文件
- 当电击一下button控件,一些控件出现,在点一下 就隐藏
- 互动的listbox问题,高手请进共讨。谢谢!!!
- 如何模拟手机端向网站post数据?
- dataGrid导出excel时,中文出现乱码,请问怎么解决!
- 一段小VB函数,如何改成c#和代码分离的?
- 如何使file控件中的编辑框不能被编辑,但“浏览”按钮照样有效
- 问思归大人~! 在asp.net中怎么使用外部别名。
- 把sql语句(比如select语句)作为参数传到存储过程中,安全吗,会不会存在注入漏洞
http://www.cnblogs.com/tonyepaper/archive/2008/05/10/1191385.html
http://topic.csdn.net/u/20090321/09/FCD592A4-D070-4525-8FFB-11B73FBDFD32.html
还有就是最好不要在url里传一些敏感的参数,及部分sql语句
但是 一个项目只有一个 dbhepler 和 数据访问层
dbhelper 中加入 方法: public static string PassSqlString(string str)
{
str = str.ToLower();
str.Replace("select", "");
str.Replace("delete", "");
str.Replace("insert", "");
str.Replace("update", "");
str.Replace("-", "");
str.Replace("'", "''");
return str;
}
数据访问:string 类型参数全部过滤下
public List<Faq> GetList(int Number, string strWhere, string order)
{
StringBuilder strSql = new StringBuilder();
if (Number > 0)
{
strSql.Append("select top " + Number + " * from Faq ");
}
else
{
strSql.Append("select * from Faq ");
}
if (strWhere.Trim() != "")
{
strSql.Append(" where " + DBHelper.PassSqlString(strWhere));
}
if (order.Trim() != "")
{
strSql.Append(" order by " + DBHelper.PassSqlString(order));
}
DataTable dt = DBHelper.SelectBySql(strSql.ToString());
List<Faq> list = new List<Faq>();
foreach (DataRow dr in dt.Rows)
{
Faq model = new Faq();
model.Fid = (int)dr["fid"];
model.Question = (string)dr["question"];
model.Answer = (string)dr["answer"];
model.Pid = (string)dr["pid"];
list.Add(model);
}
return list;
}然后就是 增加修改的参数化sql
public int Add(Faq model)
{ string sql = "insert into Faq values(@1,@2,@3)";
SqlParameter[] parameters = {
new SqlParameter("@1", SqlDbType.VarChar),
new SqlParameter("@2", SqlDbType.Text),
new SqlParameter("@3",SqlDbType.VarChar)
};
parameters[0].Value = model.Question;
parameters[1].Value = model.Answer;
parameters[2].Value = model.Pid;
return DBHelper.ExecuteSql(sql, parameters);
}
public int Update(Faq model)
{
string sql = "update Faq set question=@1,answer=@2 where fid =" + model.Fid;
SqlParameter[] parameters = {
new SqlParameter("@1", SqlDbType.VarChar),
new SqlParameter("@2", SqlDbType.Text)
};
parameters[0].Value = model.Question;
parameters[1].Value = model.Answer;
return DBHelper.ExecuteSql(sql, parameters);
}