cfqueryparam与ColdFusion中的like运算符

时间:2008-09-05 19:00:59

标签: coldfusion railo cfml openbd

我的任务是经历一些最近遭受过相当讨厌的SQL注入攻击的ColdFusion站点。基本上我的工作涉及添加<cfqueryparam&gt;标签到所有内联sql。在大多数情况下,我已经把它弄下来,但有人可以告诉我如何使用cfqueryparam与LIKE运算符?

如果我的查询如下:

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

我应该<cfqueryparam&gt;标签看起来像?

2 个答案:

答案 0 :(得分:47)

@Joel,我不同意。

select a,b,c
from Foo
where name like <cfqueryparam cfsqltype="columnType" value="%#variables.someName#%" />
  1. 永远不要向某人建议他们应该“选择明星”。形式不好!即使是一个例子! (甚至从问题中复制过来!)

  2. 查询是预编译的,您应该将通配符作为传递给查询的参数的一部分。这种格式更具可读性,运行效率更高。

  3. 进行字符串连接时,请使用&符号运算符(&amp;),而不是加号。从技术上讲,在大多数情况下,plus会正常工作......直到你在字符串中间抛出一个NumberFormat()并开始想知道为什么当你检查时你被告知你没有传递有效数字你是。

答案 1 :(得分:-1)

select a,b,c
from  Foo
where name like  <cfqueryparam cfsqltype="cf_sql_varchar" value="%Bob%" />;