我有点羞怯地问这个问题,因为我应该知道答案.有人可以善解并解释以下代码中是否以及如何进行注射?
<cfquery>
select * from tableName
where fieldName = '#value#'
</cfquery>
Run Code Online (Sandbox Code Playgroud)
我特别好奇注入尝试和其他恶意输入,而不是关于处理"正常"用户输入的最佳实践或输入验证.我看到人们强烈主张使用CFQueryParam,但我认为没有看到这一点.如果用户输入已经过验证,以确保数据库模式的一致性(例如,输入必须是数字数据库字段的数字),那么使用CFQueryParam还有其他什么吗?这是什么<cfqueryparam CFSQLType = "CF_SQL_VARCHAR">做的'#value#'没有做?