Я унаследовал большое устаревшее приложение ColdFusion. Существуют сотни некоторых sql здесь # переменных # операторов, которые должны быть параметризованы следующим образом: некоторые sql здесь
Как мне добавить программирование программно?
Я думал о написании какого-то регулярного выражения или решения типа sed / awk'y, но кажется, что кто-то где-то решал такую проблему. Бонусные баллы начисляются за автоматическое определение типа sql.
Существует сканер 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 для нашего сайта.
Я сомневаюсь, что есть решение, которое точно соответствует вашим потребностям. Единственный вариант, который я вижу, - написать собственный рекурсивный поиск, который создаст для вас отчет, или использовать одно из приложений / сценариев, перечисленных выше. По сути, вам придется редактировать каждую страницу или утверждать все автоматизированные изменения.