防SQL注入驗證處理

2021-06-16 17:02:13 字數 1671 閱讀 2580

#region 防sql注入及頁面輸出內容驗證處理

/// 

///替換單引號

///

///

///

public static string formatsqlparamsign(string str)

public static readonly string blackwords = ";|and|exec|insert|select|delete|update|*|%|chr|mid|master|truncate|char|declare|drop table|xp_cmdshell|netlocalgroup|administrators|net user";

///

///拼接sql字串條件時,替換特殊字元,如'- |and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare

///

///

///

public static string formatsqlparam(string str)

return sb.tostring();

}///

/// 對like 條件的特殊字元進行處理 % [ _ ^ '等

///

///

///

public static string formatsqllikeparam(string str)

sql server查詢中的特殊字元處理

我們都知道sql server查詢過程中,單引號「'」是特殊字元,所以在查詢的時候要轉換成雙單引號「''」。

但這只是特殊字元的乙個,在實際專案中,發現對於like操作還有以下特殊字元:下劃線「_」,百分號「%」,方括號「」以及尖號「^」。

其用途如下:

下劃線:用於代替乙個任意字元(相當於正規表示式中的 ? )

百分號:用於代替任意數目的任意字元(相當於正規表示式中的 * )

方括號:用於轉義(事實上只有左方括號用於轉義,右方括號使用最近優先原則匹配最近的左方括號)

尖號:用於排除一些字元進行匹配(這個與正規表示式中的一樣)

以下是一些匹配的舉例,需要說明的是,只有like操作才有這些特殊字元,=操作是沒有的。

a_b...        a[_]b%

a%b...       a[%]b%

a[b...       a[b%

a]b...       a]b%

ab...      ab%

a[^]b...     a[[^]]b%

a[^^]b...    a[[^][^]]b%

在實際進行處理的時候,對於=操作,我們一般只需要如此替換:

' -> ''

對於like操作,需要進行以下替換(注意順序也很重要)

[ -> [     (這個必須是第乙個替換的!!)

% -> [%]    (這裡%是指希望匹配的字元本身包括的%而不是專門用於匹配的萬用字元)

_ -> [_]

^ -> [^]

對於xss攻擊可以試著用一下微軟的元件

antixsslibraryv1.5installer.msi

查一下就可以

**xss(cross site script)漏洞原理

防SQL注入

這段 有好處也有壞處,用的時候得小心,搞不好就會跳進錯誤 dimsql injdata sql injdata and exec insert select delete update chr mid master truncate char declare sql inj split sql in...

防SQL注入

1.必須認定使用者輸入的資料都是不安全的 使用者輸入的資料進行過濾處理 if preg match w get username matches else 讓我們看下在沒有過濾特殊字元時,出現的sql情況 設定 name 中插入了我們不需要的sql語句 name qadir delete from ...

防SQL注入

與資料庫互動的 web 應用程式中最嚴重的風險之一 sql 注入攻擊。sql 注入是應用程式開發人員未預期的把 sql 傳入到應用程式的過程,它由於應用程式的糟糕設計而使攻擊成為可能,並且只有那些直接使用使用者提供的值構建 sql 語句的應用程式才會受影響。sql 語句通過字串的構造技術動態建立,文...