Как программно очистить параметры ColdFusion cfquery?

Я унаследовал большое устаревшее приложение ColdFusion. Существуют сотни некоторых sql здесь операторов #variable#, которые должны быть параметризованы в соответствии с: некоторые sql здесь

Как я могу пойти о добавлении параметризации программно?

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

5 ответов

Сканер queryparam найдет их для вас на RIAForge: http://qpscanner.riaforge.org/

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

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

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

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

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

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

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

Другие вопросы по тегам