使用参数来防止SQL注入
SQL注入的威力是不可忽視的,下面我們主要介紹防范方法——使用參數(shù)化SQL。對于不同的數(shù)據(jù)供應(yīng)器都有對就的 Parameter 來表示SQL語句或者存儲過程中的各種參數(shù)。參數(shù)和數(shù)據(jù)庫字段的真實(shí)類型——對應(yīng),所有參數(shù)的值會僅僅被認(rèn)為一個參數(shù)。因此,在參數(shù)中任何SQL語句都是沒有意義的。
在這段程序中,我們使用參數(shù)代替字符串的拼接。我們需要注意如下幾點(diǎn)。
·SQL語句或者存儲過程中指定的所有參數(shù)必須和Parameters屬性中的所有參數(shù)對應(yīng)。
·參數(shù)集合的Add()方法有多種重載
AddWithValue()方法會自動檢測參數(shù)的類型和長度,對于Add()方法其實(shí)也可以省略參數(shù)類型和長度。不過為了程序的可讀性還是建議你為參數(shù)指字類型和長度,當(dāng)然這個類型和長度需要和數(shù)據(jù)庫字段的真實(shí)類型和長度對應(yīng)。
我們還注意到,SqlParameter 對象有一個 Diection 方法。對于SQL語句中的參數(shù),這個值沒有什么意義,它是用來指定存儲過程參數(shù)方向。它的值由 ParameterDirection 枚舉來定義,共有以下4個類型。
??????·Input
·InputOutput
·Putput
·ReturnValue
轉(zhuǎn)載于:https://www.cnblogs.com/hulang/archive/2010/12/29/1920643.html
總結(jié)
以上是生活随笔為你收集整理的使用参数来防止SQL注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:div和flash层级关系问题
- 下一篇: Sqlce与SQL Server2000