sql過濾字元
Ⅰ 求過濾sql非法字元的函數
Function CheckSql() '防止SQL注入
Dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language='javascript'>{alert('請不要在參數中包含非法字元!');history.back(-1)}</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language='javascript'>{alert('請不要在參數中包含非法字元!');history.back(-1)} </Script>"
Response.end
end if
next
next
end if
End Function
Ⅱ SQL字元串過濾 檢測是否有危險字元
SQL字元串過濾函數:
public static bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str.Trim() != "")
{
string SqlStr = "exec|insert+|select+|delete|update|count|chr|mid|master+|truncate|char|declare|drop+|drop+table|creat+|create|*|iframe|script|";
SqlStr += "exec+|insert|delete+|update+|count(|count+|chr+|+mid(|+mid+|+master+|truncate+|char+|+char(|declare+|drop+table|creat+table";
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.ToLower().IndexOf(ss) >= 0)
{
ReturnValue = false;
break;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
以下是檢測SQL語句中是否包含有非法危險的字元:
/// <summary>
/// 檢測是否有Sql危險字元
/// </summary>
/// <param name="str">要判斷字元串</param>
/// <returns>判斷結果</returns>
public static bool IsSafeSqlString(string str)
{
return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
}
/// <summary>
/// 改正sql語句中的轉義字元
/// </summary>
public static string mashSQL(string str)
{
string str2;
if (str == null)
{
str2 = "";
}
else
{
str = str.Replace("\'", "'");
str2 = str;
}
return str2;
}
Ⅲ sql 查詢語句中 如何過濾 指定的字元
sqlserver:
select REPLACE(欄位名1,'湖南省','')
上面 湖南省為要替換的字元串,''為要替換的內容
Ⅳ 在線等SQL資料庫怎麼過濾空字元
nvl(col,'')
coalesce(col1,col2)
isnull(col,'')
空值轉換函數 或者 要過濾數據的話
where col is null or col = ''
Ⅳ SQL如何去除特殊字元
sql 除去特殊字元,採用replace函數,但是有些類似空格的還是無法刪除,
那麼由於這些是非空格,而是 "回車"、「tab」鍵,此時我們需要採用ascII碼,作為鍵值來替換,
MSSQL中空格完美剔除方法分享
我們可以使用類似的方法,處理table中的其它字元。
請認真閱讀,並參考。
Ⅵ SQL怎麼篩選出字元串中指定規則的字元
可用substring函數來查詢。
比如表中有如下數據:
現在要查詢第二位字元為「s」的數據,可用如下語句:
select * from test where substring(STR,2,1)='s'
結果截圖:
substring函數說明:
substring函數需要三個參數,其中第一個參數是要截取的字元串,第二個參數是要查詢字元串的起始位,第三個參數為截取的字元長度。
Ⅶ sql 查詢語句中如何過濾指定的字元
1、語句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' AND prod_price>8。
--檢索dbo.Procts表中所有列,過濾條件為由供應商king doll製造價格大於8的所有商品。
注意:--後面的字元是這條語句的注釋,這條語句有兩個條件,分別用AND關鍵字聯接在一起,並且過濾結果必須滿足這兩個條件,如果只滿足其中一個該數據不會被檢索出來。
2、OR操作符(或)
語句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' OR prod_price>8。
--檢索dbo.Procts表中所有列,過濾條件為由供應商king doll製造價格大於8的所有商品值。
注意:--這里要說明的是OR操作符與AND操作符的不同之處是只要滿足其中一個條件,數值就會被檢索出來,例如:由供應商king doll製造價格小於8商品或者由供應商king add製造價格大於8的商品只要其中一個條件符合,數據就被檢索出來。
3、IN操作符(指定條件范圍)
語句:SELECT * FROM dbo.Procts WHERE prod_name IN ('king doll' ,'Queen dool')。
--檢索dbo.Procts表中所有列,過濾條件為由供應商king doll和Queen dool製造的商品。
注意:它的功能其實和OR一樣,但是它的執行速度會更快並且簡潔,最大的優點是可以包含其他SELECT語句,能夠更動態地建立WHERE字句。
Ⅷ SQL 過濾字元欄位值
select * from spk where isnumeric(spbh)=0
解釋:
ISNUMERIC
確定表達式是否為一個有效的數字類型。
語法
ISNUMERIC ( expression )
參數
expression
要計算的表達式。
返回類型
int
注釋
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
Ⅸ 防sql注入到底應過濾哪些字元
一般來說,這樣處理即可:
所有參數都當作字元串處理,用單引號括起來。另外就是要把字元串中的單引號替換掉。
Ⅹ SQL 如何把特殊字元過濾讓他插入不進去
那就只能建立個約束,不過你這種字元太多,很麻煩
要不就把這些字元建立一張表,然後用觸發器來限制這些字元的插入
------------------
約束那個我簡單寫一下
altertable表名addconstraint約束名check(欄位notlike'%@%'and欄位notlike'%$%'and欄位notlike'%&%')
反正就是每一個都用and連接