【发布时间】:2016-11-17 05:16:28
【问题描述】:
虽然参数是防止 Sql 注入的最佳方法,但在构建动态查询时有时我们不能使用它。例如,表/列/索引名称不能作为参数传入,只能作为纯文本传入。
好像
SqlCommandBuilder.QuoteIdentifier
是我能找到的唯一选择。调用这个方法是否足以保护我们自己?
MSDN 文档:
在正确的目录大小写中给定一个不带引号的标识符,返回 该标识符的正确引用形式。这包括正确 转义标识符中的任何嵌入引号。
例如是
"Select * FROM " + SqlCommandBuilder.QuoteIdentifier("CustomTable" + userInputText);
安全吗?
编辑:查询只是一个例子。我有兴趣了解是否可以进行 Sql 注入。
【问题讨论】:
标签: c# sql-injection