SQL Server 2008 Table Valued ParametersはSQLインジェクション攻撃に対して脆弱ですか?

StackOverflow https://stackoverflow.com/questions/1422891

質問

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は実際にはありません   そのように実装されます—行は   バルクのようにストリーミング   挿入—ただし、これが原因である可能性があります   シンプルな印象   挿入。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top