Почему люди не используют <CFLOGIN>? - PullRequest
10 голосов
/ 03 марта 2009

Почему люди не используют CFLOGIN? Я помню, что у меня были проблемы с CF7 несколько месяцев назад, но я не мог вспомнить, что с ним не так.

Ответы [ 6 ]

7 голосов
/ 03 марта 2009

Я все время пользуюсь cflogin, и он прекрасно работает. Работать так, как вам нравится, может быть немного сложно, но преимущества огромны. Возможность точной настройки вашего приложения под роли пользователя отвечает за основную часть моих настроек, основанных на правах. Раньше были некоторые проблемы с управлением сессиями, с которыми было трудно работать. Включение сессий j2ee, похоже, устраняет большинство этих проблем.

Некоторые популярные фреймворки не совместимы с cflogin, так что это может быть одной из причин, по которой вы не видите много этого. У них свой подход к защите функций приложений.

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

2 голосов
/ 04 марта 2009

Имейте в виду, что CFLOGIN имеет подвох с Basic HTTP Auth, где он может продолжать отправлять свой ID пользователя и пароль даже после вызова CFLOGOUT.

Я знаю, что это оттолкнуло некоторых продвинутых пользователей.

Вот выдержка из LiveDocs

Внимание: если вы используете веб-сервер на основе аутентификация или любая форма аутентификация, которая использует базовый HTTP Заголовок авторизации, браузер продолжает отправлять аутентификацию Информация к вашему заявлению до пользователь закрывает браузер или в В некоторых случаях все открываются окна браузера. В результате после выхода пользователя из системы и ваше приложение использует cflogout тег, пока браузер не закроется, Структура cflogin в теге cflogin будет содержать пользователя, вышедшего из системы ИД пользователя и пароль. Если пользователь входит в систему и не закрывает браузер, другой пользователь может получить доступ к страницам с первый логин пользователя.

2 голосов
/ 03 марта 2009

CFLogin не используется по 3 причинам.

Сначала , это немного обидчиво, немного странно и не работает, как многие думают. Вы помещаете здесь некоторый код, и если пользователь не вошел в систему, он запускает его ... это просто странно, понимаете? Не помогло и то, что в начале были ошибки.

Секунда , хотя он обладает базовыми необходимыми функциями безопасности для веб-приложения, он не идет дальше. Вы не можете действительно расширить это легко. Кто сказал, что так хотят все?

Третий , и наиболее реалистично, это потому, что люди уже решили эту проблему. Проблемная область обеспечения безопасности приложения, аутентификации и авторизации была продумана в сообществе достаточно давно, и большинство людей знают, как это сделать. CFLogin заново изобретает дверь. Это слишком мало, слишком поздно.

Это не значит, что никто не использует это. Я лично использовал это несколько раз с основным успехом, но нет причин звонить в звонок. Для большинства моих приложений имеет смысл не использовать CFLogin. Проблемные области так или иначе, и CFLogin не всегда решает их самым разумным способом.

2 голосов
/ 03 марта 2009

Единственная проблема, с которой я столкнулся - это роли в CF8. Это блестяще реализовано и немного жестоко, потому что не работает так, как должно. Возможно в CF9.

В любом случае, создание вашей собственной системы на основе ролей (назначьте пользователю переменную сеанса с разделенным запятыми списком уровней доступа, которые система может проверять) не так уж сложно сделать, и я с этим справился.

Единственная приятная вещь в cfLogin, которую, вероятно, все еще стоит использовать, - это то, как она подключается к монитору сервера, чтобы видеть, сколько людей вошли в систему и т. Д.

Пункт выше об использовании jsession верен, его стоит делать во всех приложениях cf. Одна из лучших вещей, которые я потащила, чтобы работать так, как я хотела.

0 голосов
/ 20 января 2012

Потому что у него (все еще!) Есть серьезные ошибки, как этот:

http://www.raymondcamden.com/index.cfm/2009/8/7/Watch-out-for-this-CFLOGIN-Bug

0 голосов
/ 03 марта 2009

В моем случае (предположим, для некоторых других людей) главная причина - переход с другой платформы, скажем, PHP. Я имею в виду, что я уже получил некоторые знания и навыки в разработке ACL и начал использовать их в CF.

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

Иногда то же самое происходит с другими вещами, скажем, в большинстве случаев я предпочитаю реализовывать проверку на стороне клиента, используя собственный JS вместо использования cfform / cfinput.

...