程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> SQL字符串過濾 檢測是否有危險字符

SQL字符串過濾 檢測是否有危險字符

編輯:更多關於編程

       一個C# SQL數據庫字串操作函數,可實現對SQL字符串過濾、檢測SQL是否有危險字符、修正sql語句中的轉義字符,確保SQL不被注入:

      SQL字符串過濾函數:

      01public static bool ProcessSqlStr(string Str)

      02{

      03 bool ReturnValue = true;

      04 try

      05 {

      06 if (Str.Trim() != "")

      07 {

      08 string SqlStr ="exec|insert+|select+|delete|update|count|chr|mid|master+

    |truncate|char|declare|drop+|drop+table|creat+

    |create|*|iframe|script|";

      09 SqlStr +="exec+|insert|delete+|update+|count(|count+|chr+|+mid

    (|+mid+|+master+|truncate+|char+|

    +char(|declare+|drop+table|creat+table";

      10 string[] anySqlStr = SqlStr.Split('|');

      11 foreach (string ss in anySqlStr)

      12 {

      13 if (Str.ToLower().IndexOf(ss) >= 0)

      14 {

      15 ReturnValue = false;

      16 break;

      17 }

      18 }

      19 }

      20 }

      21 catch

      22 {

      23 ReturnValue = false;

      24 }

      25 return ReturnValue;

      26}

      以下是檢測SQL語句中是否包含有非法危險的字符:

      view sourceprint?01///

      02/// 檢測是否有Sql危險字符

      03///

      04/// 要判斷字符串

      05/// 判斷結果

      06public static bool IsSafeSqlString(string str)

      07{

      08 return !Regex.IsMatch(str, @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']");

      09}

      10///

      11/// 改正sql語句中的轉義字符

      12///

      13public static string mashSQL(string str)

      14{

      15 string str2;

      16 if (str == null)

      17 {

      18 str2 = "";

      19 }

      20 else

      21 {

      22 str = str.Replace("'", "'");

      23 str2 = str;

      24 }

      25 return str2;

      26}

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved