2009年11月26日 星期四

善用規則運算式(Regular Expressions)

如果你非要用字串串連的方式建立 SQL 查詢的話,你就要自己篩選輸入資料。以下範例使用規則運算式過濾特殊字元及部份關鍵字:

string inputString = txtSearch.Text;inputString = Regex.Replace(inputString, @"\b(exec(ute)?|select|update|insert|delete|drop|create)\b|[;']|(-{2})|(/\*.*\*/)", string.Empty, RegexOptions.IgnoreCase);

請注意,如果是使用 LIKE 來執行字串比較,即便是使用參數型命令,你仍需要逸出萬用字元:

Regex re = new Regex(@"(?[\[\%_])");inputString = re.Replace(inputString, "[${EscapeChar}]");

沒有留言:

張貼留言