1 回答
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
我通常會(huì)檢查 id 是否為整數(shù)。這樣,如果它不是 int,您將獲得異?;虿紶栔?。除非您使用 GUID 值,否則它將正常工作。
var isNumeric = int.TryParse("123", out int n); //Will give a bool
Int32.Parse(yourString); //This will give an exception if it is not an possible integer
如果不止于此,那么您可以使用正則表達(dá)式來(lái)查找奇怪的值并刪除不應(yīng)該存在的字符,例如空格。如果沒(méi)有空格,大多數(shù) SQL 注入攻擊都不會(huì)起作用……我想。刪除所有空格非常容易,我假設(shè)您的 ID(即使它很復(fù)雜)不會(huì)包含空格。
string s = " "
string t = s.Replace(" ", ""). //It will be hard to do a sql attack if the spaces are removed.
有點(diǎn)離題,但使用 C# 6.0,您可以以不同的方式格式化字符串;這是一個(gè)稱(chēng)為“字符串插值”的新功能(感謝 Etienne de Martel)。
$"SELECT * FROM `foo` where FooID = '{id}'"
- 1 回答
- 0 關(guān)注
- 156 瀏覽
添加回答
舉報(bào)
