A. java怎樣過濾危險字元
就WEB應用來說,所謂危險的字元一般就是兩種
一個是SQL注入,一個是HTML語法注入
回SQL注入主流的框架答都可以搞定,JDBC永遠都使用preparedstatement就可以防止所有的sql注入,關鍵是用戶輸入都要通過佔位符往裡放,就自動的替換掉了特殊字元了。hibernate等orm框架都會搞定這個問題
HTML語法注入是指用戶輸入的html代碼回顯出來,這樣如果不轉義就可以破壞頁面的結構或者注入腳本。所以現在的網站都不允許用戶直接輸入html代碼了,現在都是一些UBB標簽來完成一些效果。HTML主要最好的解決辦法是在回顯的時候進行轉義,所有的MVC框架或者展示層框架都有HTML轉義的支持,包括struts,spring,volicty等,注意觀察他們用於顯示的標簽
B. 防sql注入到底應過濾哪些字元
一般來說,這樣處理即可:
所有參數都當作字元串處理,用單引號括起來。另外就是要把字元串中的單引號替換掉。
C. SQL字元串過濾 檢測是否有危險字元
|SQL字元串過濾函數:
public static bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str.Trim() != "")
{
string SqlStr = "exec|+|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;
}
D. c#檢測是否有危險字元的sql字元串過濾方法
如果你指的是網址上的參數,一般來說不做檢測,而是將可能出現的危險內容直接替換為空值,比如空格、引號、分號、以及象update、select、delete或truncate這類sql關鍵字,全部用replace替換為空就行了。
E. 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字句。
F. java怎樣過濾危險字元,該怎麼解決
就WEB應用來說,所謂危險的字元一般就是兩種
一個是SQL注入,一個是HTML語法注回入
SQL注入主流的框架都可答以搞定,JDBC永遠都使用preparedstatement就可以防止所有的sql注入,關鍵是用戶輸入都要通過佔位符往裡放,就自動的替換掉了特殊字元了。hibernate等orm框架都會搞定這個問題
HTML語法注入是指用戶輸入的html代碼回顯出來,這樣如果不轉義就可以破壞頁面的結構或者注入腳本。所以現在的網站都不允許用戶直接輸入html代碼了,現在都是一些UBB標簽來完成一些效果。HTML主要最好的解決辦法是在回顯的時候進行轉義,所有的MVC框架或者展示層框架都有HTML轉義的支持,包括struts,spring,volicty等,注意觀察他們用於顯示的標簽
G. sql字元串過濾 檢測是否有危險字元
如果你指的是網址上的參數,一般來說不做檢測,而是將可能出現的危險內容直接替回換為空值,答比如空格、引號、分號、以及象update、select、delete或truncate這類sql關鍵字,全部用replace替換為空就行了。
H. 求過濾SQL非法字元的函數
Function CheckSql() '防止SQL注入
Dim sql_injdata
SQL_injdata = "'||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
I. sql 查詢語句中 如何過濾 指定的字元
sqlserver:
select REPLACE(欄位名1,'湖南省','')
上面 湖南省為要替換的字元串,''為要替換的內容
J. 過濾某個欄位的SQL語句
你好,希望我的回答對你有所幫助。
select 列名 from 表名 where ID not in (101010,101011,101012)
或者
select 列名 from 表名 where ID <> 101010 and ID <> 101011 and ID <> 101012