1

ストアドプロシージャのSQLパラメータ変数(SQL Server 2008 R2)に二重引用符を安全に追加するにはどうすればよいですか?

私はこれを持っています:

CREATE PROCEDURE procedure1 (@var1 NVARCHAR(100))
AS

DECLARE @var2 NVARCHAR(100);
SET @var2 = '"' + @var1 + '"';

SELECT * FROM TABLE1 WHERE CONTAINS(col1, @var2);

END

では、私のSET @var2ステートメントはSQLインジェクションに対して脆弱ですか?文字列を一緒に追加するための推奨される方法はありますか?

4

1 に答える 1

1

それはいいです。

引用符の連結とSQLインジェクションの問題は、SQLステートメントを作成するためにそうしている場合にのみ発生します。SQLステートメントを作成してからEXEC、何らかの方法で-uteします。

それらをSQLステートメントに連結されていない変数に連結することは、SQLインジェクションの問題ではありません。変数@var2は、全体を通して実行可能コードではなくデータとして扱われます。

于 2013-02-05T18:20:20.017 に答える