2009-09-14 132 views
1

我一直在研究在SQL Server 2008表值參數,我已經發現,通過這樣的參數時,存儲過程,查詢等發送到數據庫服務器的以下內容:SQL Server 2008表值是否容易受到SQL注入攻擊?

declare @p1 dbo.MyTypeName 
insert into @p1 values(N'row1col1',N'row1col2') 
insert into @p1 values(N'row2col1',N'row2col2') 
insert into @p1 values(N'row3col1',N'row3col2') 
insert into @p1 values(N'row4col1',N'row4col2') 
insert into @p1 values(N'row5col1',N'row5col2') 

exec StoredProcedureName @[email protected] 

我的問題是,如果插入語句沒有被參數化,對SQL注入攻擊有多安全?我試着對它進行最微不足道的攻擊,並且引號被正確地逃脫了,但是有沒有人進行過徹底的測試,或者是否有其他事情可以保護我?

回答

1

您不需要擔心TVP的SQL注入攻擊。

這看起來像一堆單身人士 調用,但事實並非如此。正如我的同事 在微軟CSS的Keith Elmore指出 出來,那只是使用 的約定來允許顯示數據或 複製/粘貼到查詢窗口並且 運行。 TVP實際上並不是以這種方式實現的 -行是 就像批量插入 插入 - 但它可能導致了這種 印象,它簡單地插入了 插入。

來源:http://blogs.msdn.com/mikecha/archive/2009/08/07/two-fast-ways-to-bulk-insert-client-generated-data-to-sql-database.aspx

+0

完美,謝謝。我看了看,但看不到任何東西。 – Mark 2009-09-14 19:39:43

相關問題