Ответ 1
Я использую измененный portcullis и фильтрую все входящие области var (URL, FORM, COOKIE) onRequestStart. http://portcullis.riaforge.org/
Каковы наилучшие методы защиты веб-страницы coldfusion от вредоносных пользователей? (включая, но не ограничиваясь, атаки на SQL-инъекцию)
Достаточно ли cfqueryparam?
Я использую измененный portcullis и фильтрую все входящие области var (URL, FORM, COOKIE) onRequestStart. http://portcullis.riaforge.org/
Пит Фрейтаг имеет замечательный блог, особенно этот пост на Hardening ColdFusion
Я бы сказал, что лучшие методы ColdFusion аналогичны тем, которые используются для программирования веб-приложений на любом языке.
Недавно я прочитал Essential PHP Security Крис Шифлетт и большинство обсуждаемых вопросов также повлияли на ColdFusion, хотя синтаксис для их решения может быть немного другим. Я ожидаю, что есть другие (возможно, более качественные) языковые агностические книги, которые содержат принципы, которые легко могут быть изменены для использования в ColdFusion.
Хотя использование готового решения будет работать, я рекомендую знать все возможные проблемы, которые необходимо защитить. Проверьте Hack Proofing ColdFusion на Amazon.
Никогда не доверяйте клиенту.
Большинство спецификаций ColdFusion "set and forget" следуют указанным выше рекомендациям по упрощению администрирования сервера, сохраняя актуальность сервера и следуя ColdFusion на Twitter, чтобы сразу узнать о каких-либо новых проблемах.
Для безопасности приложений, которая является общей для всех языков, вы должны проверять каждую часть информации, которая касается вашего сервера от клиента. Формы - это очевидные области жесткого контроля, но не забывайте о параметрах URL, которые вы можете использовать для управления или контроля состояния приложения. Что-то вроде & startRow = 10 & tag = безопасность, которая не является "предполагаемой", чтобы быть затронутой пользователем, является пользователем. Даже если ваше приложение никогда не сможет сломаться с недействительными данными, возможно, вы не знаете, как эти данные будут использоваться в будущем. Проверка может быть такой же простой, как обеспечение того, что кто-то не вводит имя длиной 100 символов и не содержит символов программирования или гарантирует, что & startRow всегда является числом. Это те вещи, которые разработчики приложений иногда пропускают, потому что все работает нормально, пока вы используете программное обеспечение, как ожидалось.
Я считаю, что вы можете посмотреть на взлом Sony Playstation в качестве примера. К сожалению, они не ожидали, что кто-то взломает клиентскую консоль (playstation console) и манипулирует консольным программным обеспечением PlayStation, чтобы взломать сервер. Сервер доверял клиенту.
Никогда не доверяйте клиенту.
Еще одно замечательное место, чтобы узнать о безопасности (и всевозможные другие темы), - это проверить массовый список зарегистрированных групп пользователей в Charlie Arehart: http://www.carehart.org/ugtv/
Вот информация о хорошем инструменте, который можно использовать для предотвращения XSS.
https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project
http://www.petefreitag.com/item/760.cfm
Довольно легко реализовать и на основе Java.
Я рекомендую вам отличную беседу Джастина Маклина " ColdFusion Security и Управление рисками ". Он включает тематическое исследование.
PDF-презентация http://cdn.classsoftware.com/talks/CFMeetupSecurity.pdf
Потоковая передача видео: http://experts.adobeconnect.com/p22718297
CfQueryParam очень важен, но не достаточно.
В моей работе есть решение в штучной упаковке: http://foundeo.com/security/. Он охватывает большинство баз. И даже если вы не хотите его покупать, вы можете взглянуть на набор функций и получить представление о том, что вы должны учитывать.
Вы можете проверить -