推 shqpaxson:不是好方法,用SQL內建的傳參數方式最好 04/29 13:24
※ 引述《mywheat (麥田)》之銘言:
: 請問,在 VB.NET 下怎麼預防 SQL INJECTION 的問題呢?
: 有無內建函式可以檢查的呢?
: 謝謝..
1) 把單引號置換成兩個單引號 (SQL Server會視為一個單引號字元)
id = replace(id, "'", "''")
sql = "select * from account where id='" & id & '"
2) 乾脆就把單引號移除
id = replace(id, "'", "")
3) 檢查使用者有輸入特殊符號,就顯示警告訊息
If id.IndexOf("'") >= 0 Then
MsgBox "帳號中不可以有單引號喔"
End If
4) 欄位為數字型態時,檢查使用者輸入是否為數字
If Not IsNumeric(txtHeight.Text) Then
MsgBox "身高欄位必須輸入數字"
End If
5) 輸入文字用來當然物件(資料表、函數、...)名稱時,用中括號包起來
sql = "select * from [data_" & username & "]"
--
▃▅▇▆▄ ▆▂▃ `
逝去感情如何能留住,半點癡情遺留殊不易,██▅▇▄▃ ▇▃▂" .
█████████▃i ▁▄▇
更多悽悽慘慘的遭遇…………██▆▃ █▅▆▃ˍ▄*
◢ ▂█▄▇▅▂▌.
我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.224.174