![](/img/trans.png)
[英]What are all the characters that should be escaped from a string to avoid SQL injection attacks in SQL Server?
[英]what characters should be escaped in sql string parameters
我需要一個完整的字符列表,應該在sql字符串參數中進行轉義以防止異常。 我假設在將其傳遞給我的ObjectDataSource過濾器參數之前,我需要用轉義版本替換所有違規字符。
不,ObjectDataSource將為您處理所有轉義。 任何參數化查詢也不需要轉義。
正如其他人所指出的,在有人認為他們需要提出這個問題的99%的案例中,他們做錯了。 參數化是要走的路。 如果你真的需要自己逃避,試着找出你的數據庫訪問庫是否為此提供了一個函數(例如,MySQL有mysql_real_escape_string
)。
這是我用來擺脫撇號的一種方式。 您可以與遇到的其他違規字符做同樣的事情。 (在VB.Net中的示例)
Dim companyFilter = Trim(Me.ddCompany.SelectedValue)
If (Me.ddCompany.SelectedIndex > 0) Then
filterString += String.Format("LegalName like '{0}'", companyFilter.Replace("'", "''"))
End If
Me.objectDataSource.FilterExpression = filterString
Me.displayGrid.DataBind()
SQL Books online:搜索字符串文字:
字符串文字
字符串文字由零個或多個由引號括起的字符組成。 如果字符串包含引號,則必須對這些引號進行轉義,以便解析表達式。 字符串中允許除\\ x0000之外的任何雙字節字符,因為\\ x0000字符是字符串的空終止符。
字符串可以包含需要轉義序列的其他字符。 下表列出了字符串文字的轉義序列。
\\ a警報
\\ b退格
\\ f表格Feed
\\ n新行
\\ r \\ n回車
\\ t水平標簽
\\ v垂直選項卡
“引號
\\反斜杠
\\ xhhhh十六進制表示法中的Unicode字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.