当前位置:  编程技术>.net/c#/asp.net

C#检测是否有危险字符的SQL字符串过滤方法

    来源: 互联网  发布时间:2014-10-31

    本文导语:  本文以一个C#的SQL数据库字串操作函数为例,说明如何实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入等功能。具体实现代码如下: SQL字符串过滤函数: public static bool ProcessSqlStr(str...

本文以一个C#的SQL数据库字串操作函数为例,说明如何实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入等功能。具体实现代码如下:

SQL字符串过滤函数:

public static bool ProcessSqlStr(string Str)
{
  bool ReturnValue = true;
  try
  {
    if (Str.Trim() != "")
    {
      string SqlStr = "exec|insert+|select+|delete|update|count|chr|mid|master+|truncate|char|declare|drop+|drop+table|creat+|create|*|iframe|script|";
      SqlStr += "exec+|insert|delete+|update+|count(|count+|chr+|+mid(|+mid+|+master+|truncate+|char+|+char(|declare+|drop+table|creat+table";
      string[] anySqlStr = SqlStr.Split('|');
      foreach (string ss in anySqlStr)
      {
        if (Str.ToLower().IndexOf(ss) >= 0)
        {
          ReturnValue = false;
          break;
        }
      }
    }
  }
  catch
  {
    ReturnValue = false;
  }
  return ReturnValue;
}

以下是检测SQL语句中是否包含有非法危险的字符:

/// 
/// 检测是否有Sql危险字符
/// 
/// 要判断字符串
/// 判断结果
public static bool IsSafeSqlString(string str)
{
  return !Regex.IsMatch(str, @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']");
}
/// 
/// 改正sql语句中的转义字符
/// 
public static string mashSQL(string str)
{
  string str2;
  if (str == null)
  {
    str2 = "";
  }
  else
  {
    str = str.Replace("'", "'");
    str2 = str;
  }
  return str2;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • 编一个程序,检测Linux系统下机器网卡的状态(只要检测网络线是否被拔掉?)
  • redhat声卡检测能检测到声卡,为什么没有声音啊??
  • Web 应用安全检测工具 Rational AppScan
  • jquery代码-如何检测各种浏览器
  • 怎样用java编写网络检测程序???(好象和snmp有关)
  • 在一个线程中的run()方法里面用无限循环的方式来检测某一个类中的变量的状态,当检测到该状态为true时,再判断该变量如果连续维持true状
  • 开源智能分布式检测框架 Razorback
  • 每次启机都会检测硬盘 浪费时间
  • 内核内存泄露检测
  • 入侵检测程序 OSSEC
  • 入侵检测系统 Snort
  • 人脸检测库 fdlib
  • 硬件检测工具 HDT
  • C代码漏洞检测工具 Splint
  • Java 中如何检测内存泄漏?
  • 请教:如何检测到第二块网卡
  • 请教UNIX C字符输入的检测函数? iis7站长之家
  • 如何让linux重启时自动检测文件系统!??
  • 如何才能检测到声卡?
  • 内存检测的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3