Как я предотвращаю Внедрение SQL когда дело доходит до ColdFusion? Я довольно плохо знаком с языком/платформой.
Вот мой запрос в качестве примера.
<cfquery name="rsRecord" datasource="DataSource">
SELECT * FROM Table
WHERE id = #url.id#
</cfquery>
Я вижу передачу в url.id
как риск.
Используйте тег
для вашего идентификатора:
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>
Другой вариант - использовать хранимые процедуры (если ваша база данных поддерживает их).
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_r-s_22.html
Использование cfqueryparam для предотвращения внедрения SQL - это хорошо. Но вы не можете использовать cachewithin в теге cfquery, если хотите использовать cfqueryparam. Еще один мой совет - поступайте так же
Поместите это условие вверху вашей страницы.
В теге запроса используйте следующее:
WHERE ID = #Val (id) #
См. Также, как предотвратить: http://ppshein.wordpress.com/2008/08/28/block-ip-in-coldfusion/