关于c#防止SQL注入的问题。。
发布网友
发布时间:2024-01-12 00:24
我来回答
共5个回答
热心网友
时间:2024-02-21 03:30
我还没进公司时,网站平均15天被注入一次,我进公司以后,大力整改,至今3个月,未见被注入。
我告诉你我的方法。
总结起来就是:关键词屏蔽或替换 + 参数法sql。
1.封装一个类,用来将传入的参数进行关键词的屏蔽和替换(像ID之类的参数,可以屏蔽关键词的就完全屏蔽,像textarea这样不能完全屏蔽的,就把关键词替换,如将半角的'替换成全角’。还要*参数的字数(很重要)
2.将所有需要和数据库打交道的地方全部进行参数化sql。
如将sql="select * from table where id='"+value+"'"
改sql="select * from table where id=@id"
写一个类,里面专门存放参数法sql的各种方法,虽然会麻烦一些,但是非常非常有效,可以杜绝绝大多数sql注入。
这样,双管其下,基本可以防止sql注入了
热心网友
时间:2024-02-21 03:30
过滤掉可以引起sql注入的字符就OK了啊。需要的话,我发给你
#region SQL安全代码过滤
/// <summary>
/// SQL安全代码过滤
/// </summary>
/// <param name="s">待过滤代码</param>
/// <returns>过滤后的代码</returns>
public string SqlStringFilter(string s)
{
s = s.Replace("\'", "‘");
s = s.Replace("\"", "“");
s = s.Replace(",", ",");
s = s.Replace(";", ";");
s = s.Replace("--", "——");
return s;
}
#endregion
热心网友
时间:2024-02-21 03:31
参数化sql就可以咯。
热心网友
时间:2024-02-21 03:32
网上代码复制过来就可以用了
热心网友
时间:2024-02-21 03:32
存储过程