zoukankan      html  css  js  c++  java
  • 过滤sql特殊字符方法集合

    /// <summary> 
        
    /// 过滤不安全的字符串
        
    /// </summary> 
        
    /// <param name="Str"></param> 
        
    /// <returns></returns> 
        public static string FilteSQLStr( string Str)
        {

            Str 
    = Str.Replace( " ' " , "" );
            Str 
    = Str.Replace( " /" " , "" );
            Str 
    = Str.Replace( " & " , " &amp " );
            Str 
    = Str.Replace( " < " , " &lt " );
            Str 
    = Str.Replace( " > " , " &gt " );

            Str 
    = Str.Replace( " delete " , "" );
            Str 
    = Str.Replace( " update " , "" );
            Str 
    = Str.Replace( " insert " , "" );

            
    return Str; 
        }

    2.

    #region 过滤 Sql 语句字符串中的注入脚本 
            
    /// <summary> 
            
    /// 过滤 Sql 语句字符串中的注入脚本
            
    /// </summary> 
            
    /// <param name="source"> 传入的字符串 </param> 
            
    /// <returns> 过 滤后的字符串 </returns> 
            public static string SqlFilter( string source)
            {
                
    // 单引号替换成两个单引号 
                source = source.Replace( " ' " , " '' " );

                
    // 半角封号替换为全角封号,防止多语句执行 
                source = source.Replace( " ; " , "  " );

                
    // 半角括号替换为全角括号 
                source = source.Replace( " ( " , "  " );
                source 
    = source.Replace( " ) " , "  " );

                
    /////////////// 要用正则表达式替换,防止字母大小写得情况 ////////////////// // 

                
    // 去除执行存储过程的命令关键字 
                source = source.Replace( " Exec " , "" );
                source 
    = source.Replace( " Execute " , "" );

                
    // 去除系统存储过程或扩展存储过程关键字 
                source = source.Replace( " xp_ " , " x p_ " );
                source 
    = source.Replace( " sp_ " , " s p_ " );

                
    // 防止16进制注入 
                source = source.Replace( " 0x " , " 0 x " );

                
    return source;
            }
            
    #endregion

    3.

    /// 过滤SQL字符。
            
    /// </summary> 
            
    /// <param name="str"> 要过滤SQL字符的字符串。 </param> 
            
    /// <returns> 已过滤掉SQL字符的字符串。 </returns> 
            public static string ReplaceSQLChar( string str)
            {
                
    if (str == String.Empty)
                    
    return String.Empty; str = str.Replace( " ' " , "  " );
                str 
    = str.Replace( " ; " , "  " );
                str 
    = str.Replace( " , " , " , " );
                str 
    = str.Replace( " ? " , " ? " );
                str 
    = str.Replace( " < " , "  " );
                str 
    = str.Replace( " > " , "  " );
                str 
    = str.Replace( " ( " , " ( " );
                str 
    = str.Replace( " ) " , " ) " );
                str 
    = str.Replace( " @ " , "  " );
                str 
    = str.Replace( " = " , "  " );
                str 
    = str.Replace( " + " , "  " );
                str 
    = str.Replace( " * " , "  " );
                str 
    = str.Replace( " & " , "  " );
                str 
    = str.Replace( " # " , "  " );
                str 
    = str.Replace( " % " , "  " );
                str 
    = str.Replace( " $ " , "  " );

                
    return str;
            }
     
    4.


    /// <summary> 
    /// 过滤标记
    /// </summary> 
    /// <param name="NoHTML"> 包括HTML,脚本,数据库关键字,特殊字符的源码 </param> 
    /// <returns> 已经去除标记后的文字 </returns> 
    public string NoHtml( string Htmlstring)
    {
        
    if (Htmlstring == null )
        {
            
    return "" ;
        }
        
    else 
        {
            
    // 删除脚本 
             Htmlstring = Regex.Replace(Htmlstring, @" <script[^>]*?>.*?</script> " , "" , RegexOptions.IgnoreCase);
            
    // 删除HTML 
            Htmlstring = Regex.Replace(Htmlstring, @" <(.[^>]*)> " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" ([/r/n])[/s]+ " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" --> " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" <!--.* " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(quot|#34); " , " /" " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(amp|#38); " , " & " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(lt|#60); " , " < " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(gt|#62); " , " > " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(nbsp|#160); " , " " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(iexcl|#161); " , " /xa1 " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(cent|#162); " , " /xa2 " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(pound|#163); " , " /xa3 " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &(copy|#169); " , " /xa9 " , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, @" &#(/d+); " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " xp_cmdshell " , "" , RegexOptions.IgnoreCase);

            
    // 删除与数据库相关的词 
             Htmlstring = Regex.Replace(Htmlstring, " select " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " insert " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " delete from " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " count'' " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " drop table " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " truncate " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " asc " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " mid " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " char " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " xp_cmdshell " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " exec master " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " net localgroup administrators " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " and " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " net user " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " or " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " net " , "" , RegexOptions.IgnoreCase);
            
    // Htmlstring = Regex.Replace(Htmlstring, "*", "", RegexOptions.IgnoreCase); 
            Htmlstring = Regex.Replace(Htmlstring, " - " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " delete " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " drop " , "" , RegexOptions.IgnoreCase);
            Htmlstring 
    = Regex.Replace(Htmlstring, " script " , "" , RegexOptions.IgnoreCase);

            
    // 特殊的字符 
             Htmlstring = Htmlstring.Replace( " < " , "" );
            Htmlstring 
    = Htmlstring.Replace( " > " , "" );
            Htmlstring 
    = Htmlstring.Replace( " * " , "" );
            Htmlstring 
    = Htmlstring.Replace( " - " , "" );
            Htmlstring 
    = Htmlstring.Replace( " ? " , "" );
            Htmlstring 
    = Htmlstring.Replace( " ' " , " '' " );
            Htmlstring 
    = Htmlstring.Replace( " , " , "" );
            Htmlstring 
    = Htmlstring.Replace( " / " , "" );
            Htmlstring 
    = Htmlstring.Replace( " ; " , "" );
            Htmlstring 
    = Htmlstring.Replace( " */ " , "" );
            Htmlstring 
    = Htmlstring.Replace( " /r/n " , "" );
            Htmlstring 
    = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

            
    return Htmlstring;
       }
    }

    5.

    public static bool CheckBadWord( string str)
    {
    string pattern = @" select|insert|delete|from|count/(|drop table|update|truncate|asc/(|mid/(|char/(|xp_cmdshell|exec   master|netlocalgroup administrators|net user|or|and" ;
    if (Regex.IsMatch(str, pattern, RegexOptions.IgnoreCase))
    return true ;
    return false ;
    }
    public static string Filter( string str)
    {
    string [] pattern = { " select " , " insert " , " delete " , " from " , " count//( " , " drop table " , " update " , " truncate" , " asc//( " , " mid//( " , " char//( " , " xp_cmdshell " , " exec   master " , " netlocalgroup administrators " , " net user " , " or " , " and " };
    for ( int i = 0 ; i < pattern.Length; i ++ )
    {
    str 
    = str.Replace(pattern[i].ToString(), "" );
    }
    return str;
    }

  • 相关阅读:
    相机标定 和 单应性矩阵H
    全景视频拼接关键技术
    OpenCV图像变换(仿射变换与透视变换)
    用非数学语言讲解贝叶斯定理
    (二)SMO算法
    (一)SVM原理
    什么是赋范线性空间、内积空间,度量空间,希尔伯特空间
    决策树算法(五)——处理一些特殊的分类
    V8学习资源
    perforce 学习资源
  • 原文地址:https://www.cnblogs.com/chenjian/p/3509495.html
Copyright © 2011-2022 走看看