这个问题出现在代码审查中,参考了必须使用字符串插值 (C#) 构造的选择查询,我似乎无法以一种或另一种方式找到参考。例如,查询可能类似于:
var sql = "SELECT * FROM {someTable} WHERE {indexedField} = ?";
由于在 WHERE 子句中使用了参数,我认为这无论如何都应该是安全的;但是,得到确认会很好。一些简单的尝试表明,即使尝试注入并且查询最终看起来像这样
Select * from SomeTable; SELECT * FROM SomeOtherTable Where IndexedField = "1"
引擎在尝试运行多个查询时仍然会出错。