-1

以下是否暴露了 Sql Injection 攻击向量?如果确实如此,我该如何预防?

@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;。如果bookIdinteger.

你是安全的。

于 2013-04-15T20:40:45.610 回答
1

您可能还会发现这很有用:http ://crypto.stanford.edu/cs142/lectures/16-sql-inj.pdf

于 2013-04-15T21:32:40.897 回答