Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

Имейте в виду, что у CFLOGIN есть catch с базовой HTTP-аутентификацией, где он может продолжать отправлять свой идентификатор пользователя и пароль даже после того, как вы вызвали CFLOGOUT.

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

Вот выдержка из LiveDocs ( Живые документы )

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top