Безопасность ColdFusion

Каковы наилучшие методы защиты веб-страницы coldfusion от вредоносных пользователей? (включая, но не ограничиваясь, атаки на SQL-инъекцию)

Достаточно ли cfqueryparam?

Ответы

Ответ 1

Я использую измененный portcullis и фильтрую все входящие области var (URL, FORM, COOKIE) onRequestStart. http://portcullis.riaforge.org/

Ответ 3

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

Недавно я прочитал Essential PHP Security Крис Шифлетт и большинство обсуждаемых вопросов также повлияли на ColdFusion, хотя синтаксис для их решения может быть немного другим. Я ожидаю, что есть другие (возможно, более качественные) языковые агностические книги, которые содержат принципы, которые легко могут быть изменены для использования в ColdFusion.

Ответ 4

Хотя использование готового решения будет работать, я рекомендую знать все возможные проблемы, которые необходимо защитить. Проверьте Hack Proofing ColdFusion на Amazon.

Ответ 5

Никогда не доверяйте клиенту.

Большинство спецификаций ColdFusion "set and forget" следуют указанным выше рекомендациям по упрощению администрирования сервера, сохраняя актуальность сервера и следуя ColdFusion на Twitter, чтобы сразу узнать о каких-либо новых проблемах.

Для безопасности приложений, которая является общей для всех языков, вы должны проверять каждую часть информации, которая касается вашего сервера от клиента. Формы - это очевидные области жесткого контроля, но не забывайте о параметрах URL, которые вы можете использовать для управления или контроля состояния приложения. Что-то вроде & startRow = 10 & tag = безопасность, которая не является "предполагаемой", чтобы быть затронутой пользователем, является пользователем. Даже если ваше приложение никогда не сможет сломаться с недействительными данными, возможно, вы не знаете, как эти данные будут использоваться в будущем. Проверка может быть такой же простой, как обеспечение того, что кто-то не вводит имя длиной 100 символов и не содержит символов программирования или гарантирует, что & startRow всегда является числом. Это те вещи, которые разработчики приложений иногда пропускают, потому что все работает нормально, пока вы используете программное обеспечение, как ожидалось.

Я считаю, что вы можете посмотреть на взлом Sony Playstation в качестве примера. К сожалению, они не ожидали, что кто-то взломает клиентскую консоль (playstation console) и манипулирует консольным программным обеспечением PlayStation, чтобы взломать сервер. Сервер доверял клиенту.

Никогда не доверяйте клиенту.

Ответ 6

Еще одно замечательное место, чтобы узнать о безопасности (и всевозможные другие темы), - это проверить массовый список зарегистрированных групп пользователей в Charlie Arehart: http://www.carehart.org/ugtv/

Ответ 9

CfQueryParam очень важен, но не достаточно.

В моей работе есть решение в штучной упаковке: http://foundeo.com/security/. Он охватывает большинство баз. И даже если вы не хотите его покупать, вы можете взглянуть на набор функций и получить представление о том, что вы должны учитывать.