我正在努力成为一名优秀的CF Web开发人员,并在所有传递到我的SQL查询中的FORM或URL元素周围使用<cfqueryparam>
。
在这种情况下,我正在尝试允许用户动态控制ORDER BY子句。
<cfquery datasource="MyDSN" name="qIncidents">
SELECT IncidentID, AnimalID, IntakeDate, DxDate, OutcomeDate
FROM Incidents
WHERE ShelterID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Arguments.ShelterID#">
ORDER BY <cfqueryparam cfsqltype="cf_sql_varchar" value="#SortBy#">
</cfquery>
当我执行此操作时,会出现以下错误:
您有什么安全的建议吗?按 ORDER BY 编号 1 确定的 SELECT 项包含作为表达式标识列位置一部分的变量。只有在按引用列名称的表达式排序时才允许使用变量。