cfqueryparam与ColdFusion中的like运算符

时间:2020-03-05 18:48:26  来源:igfitidea点击:

我的任务是浏览许多ColdFusion站点,这些站点最近是相当讨厌的SQL Injection攻击的主题。基本上,我的工作涉及向所有内联sql添加<cfqueryparam>标记。在大多数情况下,我都对它有所了解,但是谁能告诉我如何在LIKE运算符中使用cfqueryparam?

如果我的查询如下所示:

select * from Foo where name like '%Bob%'

我的<cfqueryparam`>标记应该是什么样?

解决方案

回答

@乔尔,我不同意。

select a,b,c
from Foo
where name like <cfqueryparam cfsqltype="columnType" value="%#variables.someName#%" />
  • 永远不要建议某人"选星"。格式不好!即使是一个例子! (甚至从问题中复制!)
  • 该查询是预编译的,我们应将通配符作为传递给查询的参数的一部分。这种格式更具可读性,并且运行效率更高。
  • 进行字符串连接时,请使用&运算符(&),而不要使用加号。从技术上讲,在大多数情况下,加号都可以正常工作...直到我们在字符串中间扔了一个NumberFormat()并开始想知道为什么在检查时告诉我们没有传递有效数字和你。