过滤sql特殊字符及预防sql注射

西安羚羊网络技术文档

1.过滤不安全的字符串
    /// 

 
    
/// 过滤不安全的字符串
    
/// 
 
    
///  
    
///  
    public static string FilteSQLStr( string Str)
    {
        Str 
= Str.Replace( " ' " "" );
        Str 
= Str.Replace( " /" " "" );
        Str 
= Str.Replace( " & " " & " );
        Str 
= Str.Replace( " < " " < " );
        Str 
= Str.Replace( " > " " > " );
        Str 
= Str.Replace( " delete " "" );
        Str 
= Str.Replace( " update " "" );
        Str 
= Str.Replace( " insert " "" );
        
return Str; 
    }

2.过滤 Sql 语句字符串中的注入脚本

/// 

 
        
/// 过滤 Sql 语句字符串中的注入脚本
        
/// 
 
        
///  传入的字符串  
        
///  过 滤后的字符串  
        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;
        }

2.过滤 Sql 字符

/// 过滤SQL字符。
        
///  
        
///  要过滤SQL字符的字符串。  
        
///  已过滤掉SQL字符的字符串。  
        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.

过滤标记

/// 

 

/// 过滤标记

/// 

 

///  包括HTML,脚本,数据库关键字,特殊字符的源码  

///  已经去除标记后的文字  

public string NoHtml( string Htmlstring)

{

    if (Htmlstring == null )

    {

        return "" ;

    }

    else 

    {

        // 删除脚本 

         Htmlstring = Regex.Replace(Htmlstring, @" ]*?>.*? " , "" , 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, @" 

你可能感兴趣的:(技术沉淀)