Dot-Net

SQLParameter 如何防止 SQL 注入?

  • February 3, 2011

到底發生了什麼使得SQLParameter可以防止 .NET 參數化查詢中的 SQL Inection 攻擊?它只是去掉任何可疑人物還是有更多的東西?

當你傳遞惡意輸入時,有沒有人檢查過 SQL Server 實際得到了什麼?

相關:您可以在 SQL FROM 語句中使用 SQLParameter 嗎?

基本上,當您執行SQLCommandusingSQLParameters時,參數永遠不會直接插入到語句中。相反,呼叫了一個系統儲存過程sp_executesql,並給出了 SQL 字元串和參數數組。

當這樣使用時,參數被隔離並被視為數據,而不是必須從語句中解析出來(因此可能會更改它),因此參數包含的內容永遠不會被“執行”。你只會得到一個很大的錯誤,即參數值在某種程度上是無效的。

引用自:https://stackoverflow.com/questions/4892166