Как я предотвращаю Внедрение SQL с ColdFusion

Как я предотвращаю Внедрение SQL когда дело доходит до ColdFusion? Я довольно плохо знаком с языком/платформой.

Вот мой запрос в качестве примера.

<cfquery name="rsRecord" datasource="DataSource">
    SELECT * FROM Table
    WHERE id = #url.id#
</cfquery>

Я вижу передачу в url.id как риск.

9
задан Daniel A. White 7 April 2010 в 13:19
поделиться

4 ответа

Используйте тег для вашего идентификатора:
http://www.adobe.com/livedocs/coldfusion/6.1/htmldocs/tags-b20.htm

<cfquery name="rsRecord" datasource="DataSource">
    SELECT * FROM Table
    WHERE id = 
     <cfqueryparam value = "#url.id#"
        CFSQLType = "CF_SQL_INTEGER">
</cfquery>
18
ответ дан 4 December 2019 в 08:00
поделиться
  • использовать параметризованную хранимую процедуру
  • cfqueryparam
  • обработка ошибок для отдельных запросов
  • обработка ошибок для сайта с помощью логики
  • , которая ограничивает количество запросов, исходящих с определенного IP-адреса. в заданное время
  • убедитесь, что учетная запись пользователя базы данных имеет доступ только к определенным действиям, которые она должна
6
ответ дан 4 December 2019 в 08:00
поделиться

Другой вариант - использовать хранимые процедуры (если ваша база данных поддерживает их).

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_r-s_22.html

0
ответ дан 4 December 2019 в 08:00
поделиться

Использование cfqueryparam для предотвращения внедрения SQL - это хорошо. Но вы не можете использовать cachewithin в теге cfquery, если хотите использовать cfqueryparam. Еще один мой совет - поступайте так же

Поместите это условие вверху вашей страницы.

В теге запроса используйте следующее:

WHERE ID = #Val (id) #

См. Также, как предотвратить: http://ppshein.wordpress.com/2008/08/28/block-ip-in-coldfusion/

0
ответ дан 4 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: