2008-09-15 14 views
3

Я унаследовал большое наследие ColdFusion. Есть сотни <cfquery> некоторые SQL здесь # переменная # </cfquery > заявления, которые должны быть настроены параметры вдоль линий: <cfquery> некоторые SQL здесь < значение cfqueryparam = "# переменная #"/> </cfquery >Как программно дезинфицировать параметры cfquery ColdFusion?

Как можно программно добавить параметризацию?

Я думал о написании некоторого регулярного выражения или решения sed/awk'y, но похоже, что кто-то где-то решил такую ​​проблему. Бонусные баллы присуждаются за автоматическое определение типа sql.

+0

У меня еще не было возможности проверить vet http://qpscanner.riaforge.org/, или http://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injection. Но если один из этих двух может получить достаточные авансы, возможно, мне это не понадобится, и я могу просто принять этот ответ. – 2008-09-17 04:03:25

ответ

10

Там в queryparam сканер, который найдет их для вас на RIAForge: http://qpscanner.riaforge.org/

+0

Примечание: Версия 0.8 QueryParam Scanner добавит возможность автоматического исправления параметров, но в настоящее время она их только находит. – 2008-09-15 22:26:14

6

Существует скрипт ссылки здесь: http://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injection, что будет делать большую часть тяжелого подъема для вас. Все, что вам нужно сделать, это проверить запросы и убедиться, что синтаксис будет правильно разбираться.

Исправлено из-за того, что CFQueryParam не использует CFQueryParam, кроме того, что он более безопасен, это повышение производительности и лучший способ обработки цитируемых значений в символьных колонках.

+0

Этот скрипт теперь находится на github, чтобы люди могли захватить и внести свой вклад. https://github.com/mhenke/WebApper-ColdFusion-SQL-Injection – 2011-07-29 15:30:26

1
<cf_inputFilter 
      scopes = "FORM,COOKIE,URL" 
      chars = "<,>,!,&,|,%,=,(,),',{,}" 
      tags="script,embed,applet,object,HTML"> 

Мы использовали это, чтобы противодействовать недавней атаке по внедрению SQL. Мы добавили его в файл Application.cfm для нашего сайта.

0

Я сомневаюсь, что есть решение, которое точно соответствует вашим потребностям. Единственный вариант, который я вижу, это написать собственный рекурсивный поиск, который создает отчет для вас или использует один из приложений/сценариев, перечисленных выше. В принципе, вам придется редактировать каждую страницу или одобрять все автоматические изменения.

3

Имейте в виду, что вы не сможете решить все проблемы с помощью <cfqueryparam>.

Я видел ряд примеров, в которых в строке запроса передается имя по имени поля, что является немного более сложной задачей для решения, поскольку вам нужно проверить это более «вручную».