SQL查询作为参数发送的危险?

use*_*679 1 sql sql-server sql-injection database-security

基本问题.如果我有一个表格要求用户提供他们的姓名,电子邮件和评论,我将这些条目存储在数据库中...如果有人输入SQL查询会发生什么情况,例如:

DROP tablename
Run Code Online (Sandbox Code Playgroud)

在评论部分.

@Name,
@Email,
@Comments

INSERT INTO mytable (Name, Email, Comments) VALUES (@Name, @Email, @Comments)
Run Code Online (Sandbox Code Playgroud)

是否存在SQL注入的风险或者我是否完全安全?

SQL Server 2008存储过程来处理插入.

Bil*_*win 5

是的,你很安全.

SQL注入通过插入恶意输入来更改SQL查询的语法.

但是一个查询参数总是替换一个标量值.如果使用参数,任何恶意输入都无法改变查询的语法.