-1

以下は、Sql インジェクション攻撃ベクトルを公開していますか? もしそうなら、どうすればそれを防ぐことができますか?

@bookId = '1234;' + 'Drop table Books;'
Select * from Books where bookId = @bookId 

そのように実行されませんか?:

Select * from Books where bookId = 1234; Drop table Books;
4

2 に答える 2

5

いいえ、それはしません。それはパラメータ化の仕組みではありません。パラメータ化は文字列連結ではありません。

このコードは、ID が である本を見つけようとします1234;Drop table Books;。の場合、型キャストで失敗しbookIdますinteger

あなたは安全です。

于 2013-04-15T20:40:45.610 に答える
1

これも役に立つかもしれません: http://crypto.stanford.edu/cs142/lectures/16-sql-inj.pdf

于 2013-04-15T21:32:40.897 に答える