Подтвердить что ты не робот

Cfqueryparam с аналогичным оператором в ColdFusion

Мне было поручено пройти через несколько сайтов ColdFusion, которые недавно были предметом довольно неприятной атаки SQL Injection. В основном моя работа включает в себя добавление тегов <cfqueryparam > ко всем встроенным sql. По большей части у меня это получилось, но может ли кто-нибудь сказать мне, как использовать cfqueryparam с оператором LIKE?

Если мой запрос выглядит так:

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

Как выглядит мой тег <cfqueryparam > ?

4b9b3361

Ответ 1

@Joel, я должен не согласиться.

select a,b,c
from Foo
where name like <cfqueryparam cfsqltype="columnType" value="%#variables.someName#%" />
  • Никогда не предлагайте кому-то, чтобы они "выбирали звезду". Плохой тон! Даже для примера! (Даже скопирован из вопроса!)

  • Запрос предварительно скомпилирован, и вы должны включить символ (-ы) дикой карты как часть передаваемого в запрос параметра. Этот формат более читабельен и будет работать более эффективно.

  • При выполнении конкатенации строк используйте оператор амперсанда (&), а не знак плюса. Технически, в большинстве случаев, плюс будет работать отлично... пока вы не выкинете NumberFormat() в середине строки и не начнете задаваться вопросом, почему вам говорят, что вы не передаете действительный номер, когда вы проверили и вы.

Ответ 2

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