用戶在客戶端提交的內容有時候並不可信,如果客戶端提交的內容中含有危險字元串信息,則很有可能造成應用程式安全性問題,如SQL註入風險等。因此在接收客戶端提交過來的數據後,我們首先需要判斷數據中是否含有危險字元信息,如果有則可以提前處理掉,如去除一些SQL註入攻擊的關鍵字等。 校驗的方法封裝如下: 備註 ...
用戶在客戶端提交的內容有時候並不可信,如果客戶端提交的內容中含有危險字元串信息,則很有可能造成應用程式安全性問題,如SQL註入風險等。因此在接收客戶端提交過來的數據後,我們首先需要判斷數據中是否含有危險字元信息,如果有則可以提前處理掉,如去除一些SQL註入攻擊的關鍵字等。
校驗的方法封裝如下:
/// <summary> /// 檢測客戶輸入的字元串是否有效,並將原始字元串修改為有效字元串或空字元串。 /// 當檢測到客戶的輸入中有攻擊性危險字元串,則返回false,有效返回true。 /// </summary> /// <param name="input">要檢測的字元串</param> public static bool IsValidInput(ref string input) { try { if (IsNullOrEmpty(input)) { //如果是空值,則跳出 return true; } else { //替換單引號 input = input.Replace("'", "''").Trim(); //檢測攻擊性危險字元串 string testString = "and |or |exec |insert |select |delete |update |count |chr |mid |master |truncate |char |declare "; string[] testArray = testString.Split('|'); foreach (string testStr in testArray) { if (input.ToLower().IndexOf(testStr) != -1) { //檢測到攻擊字元串,清空傳入的值 input = ""; return false; } } //未檢測到攻擊字元串 return true; } } catch (Exception ex) { throw new Exception(ex.Message); } }
備註:原文轉載自C#檢測客戶端輸入的內容是否含有危險字元串_IT技術小趣屋。
用戶在客戶端提交的內容有時候並不可信,如果客戶端提交的內容中含有危險字元串信息,則很有可能造成應用程式安全性問題,如SQL註入風險等。因此在接收客戶端提交過來的數據後,我們首先需要判斷數據中是否含有危險字元信息,如果有則可以提前處理掉,如去除一些SQL註入攻擊的關鍵字等。
校驗的方法封裝如下:
/// <summary>
/// 檢測客戶輸入的字元串是否有效,並將原始字元串修改為有效字元串或空字元串。
/// 當檢測到客戶的輸入中有攻擊性危險字元串,則返回false,有效返回true。
/// </summary>
/// <param name="input">要檢測的字元串</param>
public static bool IsValidInput(ref string input)
{
try
{
if (IsNullOrEmpty(input))
{
//如果是空值,則跳出
return true;
}
else
{
//替換單引號
input = input.Replace("'", "''").Trim();
//檢測攻擊性危險字元串
string testString = "and |or |exec |insert |select |delete |update |count |chr |mid |master |truncate |char |declare ";
string[] testArray = testString.Split('|');
foreach (string testStr in testArray)
{
if (input.ToLower().IndexOf(testStr) != -1)
{
//檢測到攻擊字元串,清空傳入的值
input = "";
return false;
}
}
//未檢測到攻擊字元串
return true;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}