Как программно очистить параметры ColdFusion cfquery? - PullRequest
3 голосов
/ 15 сентября 2008

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

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

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

Ответы [ 5 ]

10 голосов
/ 15 сентября 2008

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

6 голосов
/ 15 сентября 2008

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

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

3 голосов
/ 17 сентября 2008

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

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

1 голос
/ 16 сентября 2008
<cf_inputFilter
            scopes = "FORM,COOKIE,URL"
            chars = "<,>,!,&,|,%,=,(,),',{,}"
            tags="script,embed,applet,object,HTML">

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

0 голосов
/ 16 сентября 2008

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

...