SQL Server 2008 Table Valued ParametersはSQLインジェクション攻撃に対して脆弱ですか?
-
07-07-2019 - |
質問
SQL Server 2008のテーブル値パラメーターを調査しており、そのようなパラメーターをストアドプロシージャに渡すと、次のようなクエリがデータベースサーバーに送信されることを発見しました。
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 @MyParam=@p1
挿入ステートメントがパラメーター化されていない場合、これはSQLインジェクション攻撃に対してどれだけ安全かという質問です。私はそれに対して最も些細な攻撃を試みましたが、引用符は適切にエスケープされましたが、徹底的なテストを実行している人がいますか、それとも私を保護する何かがここで起こっていますか?
解決
TVPを使用したSQLインジェクション攻撃について心配する必要はありません。
これはシングルトンの束のようです 呼び出しますが、そうではありません。私のコラージュとして Microsoft CSSのキース・エルモアが指摘 アウト、それは単に使用される規則です データを表示できるようにする、または クエリウィンドウにコピー/貼り付け 走る。 TVPは実際にはありません そのように実装されます—行は バルクのようにストリーミング 挿入—ただし、これが原因である可能性があります シンプルな印象 挿入。
所属していません StackOverflow