SQL 存储过程中将用户输入追加到表并防止 sql 注入的正确方法



我在SQL中有一个表,其中包含一个varchar(max)字段,该字段基本上是由最终用户使用自由格式条目(从网页(更新的日志。

如何防止 SQL 注入? 或者也许已经是了?

create proc stored_procedure
@input varchar(max)
as
update mytable
set logfield = logfield + '  ' + @input;

看起来可能没问题(SQL Server 2012(。但是我能读到的所有内容都坚持认为,即使在参数化存储过程中,也不应该连接用户输入。

是否有其他方法可以附加用户输入?

SQL注入只会发生在动态SQL上(无论是在SQL Server端还是在应用程序端(。您的代码不容易受到 SQL 注入的影响。但是,您正在更新表中的所有行。应使用 WHERE 子句限制更新。

最新更新