2013-06-27 35 views
0

如果我需要將數據插入表中,使用SqlParameter是一個最佳選擇。 但是我聽到有人說SqlParameter在SQL注入方面仍然存在一些缺陷。 證明是聯繫一個sql字符串並運行exec命令。在這種情況下,SQL注入仍然存在一些風險。使用SqlParameter可以完全避免SQL注入?

但我的問題是,如果我只使用SqlParameter在沒有exec命令的情況下將數據插入到表中,我仍然有SQL注入風險嗎?

+1

您可以在本主題中獲得一些信息。這個問題似乎是相同的:http://stackoverflow.com/questions/306668/are-parameters-really-enough-to-prevent-sql-injections –

+0

你如何分享代碼,我會嘗試注入一些SQL到它 –

回答

1

exec示例的問題是您正在運行兩個查詢。第一個查詢使用concation生成第二個sql字符串,然後執行第二個查詢。

只要你保持你的命令和你的數據通道是分開的(保持查詢將獨立於查詢將運行的變量值),你不能有SQL注入(如定義的SQL注入正在使用數據通道來滑入某個命令通道)

1

是的,只要您可以使用參數每個語句動態添加到查詢中。太糟糕了,大多數框架並不允許你這樣做,但只適用於一些簡單的數據類型。

相關問題