本来我想用存储过程来做查询的
但最好发现在存储过程中拼合查询语句也没有办法防止用户输入如
‘这样的字符出错
晕顺便问一下,如何能够不用转掉用户的输入如' --> ''
而SQL能够正常查询呢
注:这里主要用来做查询的
可以查我的贴 %|M|%存储过程%谢谢
但最好发现在存储过程中拼合查询语句也没有办法防止用户输入如
‘这样的字符出错
晕顺便问一下,如何能够不用转掉用户的输入如' --> ''
而SQL能够正常查询呢
注:这里主要用来做查询的
可以查我的贴 %|M|%存储过程%谢谢
调试欢乐多
只有使用参数,才可以不用手动转化,防止sql 注入
这里面的就是我的存储过程
如何把他改为:
使用参数,可以不用手动转化,防止sql 注入
再留个msn:[email protected]
以后多多交流
Jinglecat(晓风残月)
zyciis287()
你们几位都不睡觉的吗?
本人不会存储过程,但是绝对知道这个很有用。
比如使用 下面的函数
/// <summary>
/// 过滤html
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string FilterSQL(string text)
{
string validSql = "";
if (text != null)
{
text = text.Replace("\"", """);
text = text.Replace(";", "");
//text = text.Replace("'", "''");
// text = text.Replace("--", "''--''");
text = text.Replace("%25", "");
text = text.Replace("%0a", "");
text = text.Replace("%22", "");
text = text.Replace("%27", "");
text = text.Replace("%5c", "");
text = text.Replace("%2f", "");
text = text.Replace("%3c", "");
text = text.Replace("%3e", "");
text = text.Replace("%26", ""); text = text.Replace("<", "<");
text = text.Replace(">", ">");
validSql = text;
}
return validSql;
}
本来用存储过程的好处之一就是防止用户sql注入,结果lz还是用拼字符串的方法写存储过程。
本人不会存储过程,但是绝对知道这个很有用。
--------------------------------------------------
我的就是这个意思
问的是怎么把我那条复杂的查询语句改成
非用拼字符串的方法写存储过程
也就是可以防止用户sql注入要是要用如public static string FilterSQL(string text)
这样的话那我就接写sql就可以了何必用存储过程呢
谢谢