防止sql注入漏洞可以用哪些函数

 我来答
200908090008
2017-02-28 · TA获得超过501个赞
知道小有建树答主
回答量:230
采纳率:50%
帮助的人:77.9万
展开全部
  1. 防止sql注入攻击,在数据库方面,针对每一个表的增删改,写存储过程,程序主要靠存储过程操作数据。

  2. 在代码中,个别特殊需要数据查询的,如果不能通过存储过程,那就尽量用传参的方式,尽量不要拼接sql。

  3. 如果非要拼接,要对拼接字符串进行处理,Tools的如下字符串处理方法可以防止注入攻击:

  4. /// <summary>
    /// 格式化文本(防止SQL注入)
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string AntiSQL(string html)
    {
        Regex regex1 = new Regex(@"<script[\s\S]+</script *>", RegexOptions.IgnoreCase);
        Regex regex2 = new Regex(@" href *= *[\s\S]*script *:", RegexOptions.IgnoreCase);
        Regex regex3 = new Regex(@" on[\s\S]*=", RegexOptions.IgnoreCase);
        Regex regex4 = new Regex(@"<iframe[\s\S]+</iframe *>", RegexOptions.IgnoreCase);
        Regex regex5 = new Regex(@"<frameset[\s\S]+</frameset *>", RegexOptions.IgnoreCase);
        Regex regex10 = new Regex(@"select", RegexOptions.IgnoreCase);
        Regex regex11 = new Regex(@"update", RegexOptions.IgnoreCase);
        Regex regex12 = new Regex(@"delete", RegexOptions.IgnoreCase);
        html = regex1.Replace(html, ""); //过滤<script></script>标记
        html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
        html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件
        html = regex4.Replace(html, ""); //过滤iframe
        html = regex10.Replace(html, "s_elect");
        html = regex11.Replace(html, "u_pudate");
        html = regex12.Replace(html, "d_elete");
        html = html.Replace("'", "’");
        html = html.Replace("&nbsp;", " ");
        return html;
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式