以下は、Sql インジェクション攻撃ベクトルを公開していますか? もしそうなら、どうすればそれを防ぐことができますか?
@bookId = '1234;' + 'Drop table Books;'
Select * from Books where bookId = @bookId
そのように実行されませんか?:
Select * from Books where bookId = 1234; Drop table Books;
以下は、Sql インジェクション攻撃ベクトルを公開していますか? もしそうなら、どうすればそれを防ぐことができますか?
@bookId = '1234;' + 'Drop table Books;'
Select * from Books where bookId = @bookId
そのように実行されませんか?:
Select * from Books where bookId = 1234; Drop table Books;
いいえ、それはしません。それはパラメータ化の仕組みではありません。パラメータ化は文字列連結ではありません。
このコードは、ID が である本を見つけようとします1234;Drop table Books;
。の場合、型キャストで失敗しbookId
ますinteger
。
あなたは安全です。
これも役に立つかもしれません: http://crypto.stanford.edu/cs142/lectures/16-sql-inj.pdf