Как выбрать библиотеку аутентификации для CodeIgniter? [закрыто]

Я не мог использовать ни одно из приведенных выше предложений. Почему я предпочитаю свое решение? Этот метод проверяет, находится ли мышь над элементом в любое время, выбранным вами. Mouseenter и: зависание - это круто, но mouseenter запускается только при перемещении мыши, а не при перемещении элемента под мышью. : hover довольно милый, но ... IE

Итак, я делаю это:

Нет 1. храните мышь x, y позицию каждый раз, когда вам нужно, No 2. проверьте, находится ли мышь над любым из элементов, которые соответствуют запросу, делают вещи ... например, запускают событие mouseenter

// define mouse x, y variables so they are traced all the time
var mx = 0; //  mouse X position
var my = 0; //  mouse Y position

// update mouse x, y coordinates every time user moves the mouse
$(document).mousemove(function(e){
    mx = e.pageX;
    my = e.pageY;
});

// check is mouse is over an element at any time You need (wrap it in function if You need to)
$("#my_element").each(function(){
    boxX = $(this).offset().left;
    boxY = $(this).offset().top;
    boxW = $(this).innerWidth();
    boxH = $(this).innerHeight();
    if ((boxX <= mx) &&
        (boxX + 1000 >= mx) &&
        (boxY <= my) &&
        (boxY + boxH >= my))
    {
        // mouse is over it so you can for example trigger a mouseenter event
        $(this).trigger("mouseenter");
    }
});
390
задан Shog9 24 May 2012 в 03:37
поделиться

7 ответов

Обновление (14 мая 2010):

Это складывается, российский разработчик Ilya Konyukhov взял рукавицу после чтения этого и создал новую подлинную библиотеку для CI на основе Автора DX, в соответствии с рекомендациями и требованиями ниже.

И получающийся Автор Корпуса похож на ответ на вопрос OP. Я собираюсь рискнуть здесь и назвать Автора Корпуса лучшей библиотекой аутентификации для CodeIgniter доступный сегодня. Это - надежная библиотека, которая имеет все функции, в которых Вы нуждаетесь и ни одно из чрезмерного увеличения размера, которое Вы не делаете:

Автор корпуса

Профессионалы

  • Полнофункциональный
  • Минимизированное место (20 файлов) рассмотрение набора функций
  • Очень хорошая документация
  • Простое и изящное проектирование баз данных (всего 4 Таблицы базы данных)
  • Большинство функций является дополнительным и легко настроено
  • Поддержка файла языка
  • reCAPTCHA поддерживается
  • Рычаги в систему проверки CI
  • Электронные письма активации
  • Вход в систему с электронной почтой, именем пользователя или обоими (настраивающимися)
  • Неактивированные учетные записи автоистекают
  • Простая все же эффективная обработка ошибок
  • Использование phpass для хеширования (и также хеширует автокоды для входа в DB),
  • Не использует вопросы о безопасности
  • Разделение пользователя и данных профиля очень хорошо
  • Очень разумная модель обеспечения безопасности вокруг неудавшихся попыток входа в систему (хорошая защита от ботов и DoS-атаки)

(Незначительные) Недостатки

  • Коды потерянного пароля не хешируются в DB
  • Включает собственную (плохую) КАПЧУ, которая хороша для тех, кто не хочет зависеть от reCAPTCHA сервиса, (находящегося в собственности Google), но это действительно не достаточно безопасно
  • Очень редкая онлайн-документация (незначительная проблема здесь, так как код приятно документируется и интуитивен),

Загрузите Автора Корпуса здесь


Исходный ответ:

Я реализовал свое собственное также (в настоящее время приблизительно 80%, сделанных после нескольких недель работы). Я попробовал всех другие сначала; Свет FreakAuth, Автор DX, Возвращение, SimpleLogin, SimpleLoginSecure, pc_user, Новый Приводимый в действие, и еще много. Ни один из них не был в нормальном состоянии, IMO, или они испытывали недостаток в основных характеристиках, по сути Небезопасных, или слишком чрезмерно увеличенных в размерах для моего вкуса.

На самом деле я сделал подробную сводку новостей всех библиотек аутентификации для CodeIgniter, когда я проверял их (сразу после Новогоднего). FWIW, я совместно использую его с Вами:

Автор DX

Профессионалы

  • Очень полнофункциональный
  • Среднее место (25 + файлы), но умеет чувствовать себя довольно тонким
  • Превосходная документация, хотя некоторые находятся на немного ломаном английском
  • Поддержка файла языка
  • reCAPTCHA поддерживается
  • Рычаги в систему проверки CI
  • Электронные письма активации
  • Неактивированные учетные записи автоистекают
  • Предлагает grc.com для солей (не плохо для PRNG)
  • Запрет с сохраненной 'причиной' строки
  • Простая все же эффективная обработка ошибок

Недостатки

  • Только позволяет пользователям 'сбросить' потерянный пароль (вместо того, чтобы позволить им выбрать новый после повторной активации)
  • Доморощенная псевдомодель событий - благое намерение, но промахивается
  • Два поля пароля в пользовательской таблице, плохом стиле
  • Использование две таблицы отдельного пользователя (один для 'временных' пользователей - неоднозначный и избыточный)
  • Использует потенциально небезопасное хеширование md5
  • Неудавшийся вход в систему пытается только сохраненный IP, не именем пользователя - небезопасный!
  • Ключ автовхода в систему, не хешированный в базе данных - практически столь же небезопасный как хранение паролей в открытом тексте!
  • Ролевая система является полной путаницей: функция is_admin с трудно кодированными ролевыми именами, is_role полная путаница, check_uri_permissions является путаницей, целая таблица полномочий является плохой идеей (URI может изменить и представить незащищенные страницы; полномочия должны всегда храниться точно, где чувствительная логика). Dealbreaker!
  • Включает собственную (плохую) КАПЧУ
  • интерфейс функции reCAPTCHA грязен

Свет FreakAuth

Профессионалы

  • Очень полнофункциональный
  • Главным образом вполне хорошо зарегистрированный код
  • Разделение пользователя и данных профиля является приятной чертой
  • Рычаги в систему проверки CI
  • Электронные письма активации
  • Поддержка файла языка
  • Активно разработанный

Недостатки

  • Чувства немного чрезмерно увеличены в размере (50 + файлы)
  • И все же это испытывает недостаток в автоматическом входе в систему cookie (!)
  • Не поддерживает логины и с именем пользователя и с электронной почтой
  • Кажется, имеет проблемы с символами UTF-8
  • Требует большой автозагрузки (препятствующий производительности)
  • Плохо микроуправляемый файл конфигурации
  • Ужасное разделение Контроллера Представления, с большой логикой программы в представлениях и выводе, трудно кодированном в контроллеры. Dealbreaker!
  • Плохой HTML-код во включенных представлениях
  • Включает нестандартную КАПЧУ
  • Прокомментированная отладка отзывается эхом везде
  • Вызывает определенную структуру папок
  • Вынуждает определенную библиотеку Ajax (может быть переключен, но не должен быть там во-первых),
  • Никакой макс. предел на попытки входа в систему - ОЧЕНЬ небезопасный! Dealbreaker!
  • Налеты формируют проверку
  • Использует потенциально небезопасное хеширование md5

pc_user

Профессионалы

  • Хороший набор функций для его крошечного места
  • Легкий вес, никакое чрезмерное увеличение размера (3 файла)
  • Изящный автоматический вход в систему cookie
  • Идет с дополнительной тестовой реализацией (приятная черта)

Недостатки

  • Использует старый (менее безопасный) синтаксис базы данных CI
  • Не сцепляется в систему проверки CI
  • Вид неинтуитивного состояния (роль) система (индексирует вверх тормашками - непрактичный),
  • Использует потенциально небезопасное хеширование sha1

Новый приводимый в действие

Профессионалы

  • Маленькое место (6 файлов)

Недостатки

  • Испытывает недостаток в большом количестве существенных особенностей. Dealbreaker!
  • Все трудно кодируется. Dealbreaker!

Возвращение / Ионный Автор

Согласно CodeIgniter wiki, было прекращено Возвращение, но Ионное Подлинное ветвление процветает: https://github.com/benedmunds/CodeIgniter-Ion-Auth

Ионный Автор является хорошо известной библиотекой без него являющийся чрезмерно тяжелым или под усовершенствованным. В большинстве случаев его набор функций больше, чем обслужит требования проекта.

Профессионалы

  • Легкий и простой интегрироваться с CodeIgniter
  • Поддержки, посылающие электронные письма непосредственно из библиотеки
  • Хорошо зарегистрированное и хорошее активное dev/user сообщество онлайн
  • Простой реализовать в проект

Недостатки

  • Более сложная схема DB, чем некоторые другие
  • Документация испытывает недостаток в детали в некоторых областях

SimpleLoginSecure

Профессионалы

  • Крошечное место (4 файла)
  • Минималистический, абсолютно никакое чрезмерное увеличение размера
  • Использование phpass для хеширования (превосходного)

Недостатки

  • Только вход в систему, выход из системы, создает и удаляет
  • Испытывает недостаток в большом количестве существенных особенностей. Dealbreaker!
  • Больше начальной точки, чем библиотека

Не понимайте меня превратно: Я не означаю относиться непочтительно к любой из вышеупомянутых библиотек; я очень впечатлен тем, что выполнили их разработчики и как далеко каждый из них прибыл, и я не выше многократного использования части их кода для создания моего собственного. То, что я говорю, иногда в этих проектах, сдвигах фокуса от существенной 'потребности имущим' (таких как твердые методы безопасности) закончено к 'хорошему имущим' более мягкому, и это - то, что я надеюсь исправить.

Поэтому: назад к основам.

Аутентификация для сделанного правильно CodeIgniter

Вот мой МИНИМАЛЬНЫЙ необходимый список функций из библиотеки аутентификации. Это также, оказывается, подмножество списка функций моей собственной библиотеки ;)

  1. Крошечное место с дополнительной тестовой реализацией
  2. Полная документация
  3. Никакая необходимая автозагрузка. Своевременная загрузка библиотек для производительности
  4. Поддержка файла языка; никакие трудно кодированные строки
  5. reCAPTCHA, поддерживаемый но дополнительный
  6. Рекомендуемый TRUE случайное соленое поколение (например, использование random.org или random.irb.hr)
  7. Дополнительные дополнения для поддержки стороннего входа в систему (OpenID, Подключение Facebook, Google Account, и т.д.)
  8. Вход в систему с помощью или имени пользователя или электронной почты
  9. Разделение пользователя и данных профиля
  10. Электронные письма для активации и потерянных паролей
  11. Автоматическая функция входа в систему cookie
  12. Настраиваемый phpass для хеширования (правильно посоливший, конечно!)
  13. Хеширование паролей
  14. Хеширование автокодов для входа
  15. Хеширование кодов потерянного пароля
  16. Рычаги в систему проверки CI
  17. НИКАКИЕ вопросы о безопасности!
  18. Вынужденная серверная сторона политики сильного пароля, с дополнительным, клиентским (JavaScript) блок проверки допустимости
  19. Вынужденное максимальное количество неудавшегося входа в систему пытается с контрмерами ЛУЧШИХ ПРАКТИК и против словаря и против DoS-атак!
  20. Весь доступ к базе данных сделан через подготовленные (связанные) операторы!

Примечание: те последние несколько точек не являются излишеством супервысокой безопасности, в котором Вы не нуждаетесь для своего веб-приложения. Если библиотека аутентификации не выполняет эти стандарты обеспечения защиты 100%, НЕ ИСПОЛЬЗУЙТЕ IT!

Недавние высококлассные примеры безответственных кодеров, которые упустили их из их программного обеспечения: № 17 - то, как электронная почта AOL Sarah Palin's была взломана во время Кампании по выборам президента; противная комбинация № 18 и № 19 была преступником недавно, когда аккаунты в Твиттере Britney Spears, Barack Obama, Fox News и других были взломаны; и один только № 20 - то, как китайским хакерам удалось украсть 9 миллионов единиц персональной информации больше чем с 70 000 корейских веб-сайтов в одном автоматизированном взломе в 2008.

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


<напыщенная речь>

В основном вот то, как это: Я не забочусь, предлагает ли подлинная библиотека набор функций, усовершенствованного ролевого управления, совместимости PHP4, симпатичных шрифтов КАПЧИ, таблиц страны, полных панелей администрации, дополнительных свойств - если библиотека на самом деле делает мой сайт менее безопасным, не применяя лучшие методы. Это - пакет аутентификации; это должно сделать ОДНУ вещь правильно: Аутентификация. Если этому не удается сделать это, это на самом деле приносит больше вреда, чем пользы.

</напыщенная речь>

/Jens Roland

465
ответ дан Daniel Waghorn 24 May 2012 в 14:37
поделиться
  • 1
    Для моего файла CSV оценка достаточно точна – Jader Dias 24 May 2011 в 06:14

Также смотрите на BackendPro

В конечном счете, Вы, вероятно, закончите тем, что писали что-то пользовательское, но нет ничего неправильно с заимствованием понятий от Автора DX, Странного Автора, BackendPro, и т.д.

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

я также использую Присяжного острослова и ADOdb в моем коде CI, так неважно, что я всегда заканчивал бы тем, что внес главными изменениями кода.

4
ответ дан Adam 24 May 2012 в 03:37
поделиться

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

6
ответ дан Jelani Harris 24 May 2012 в 03:37
поделиться
  • 1
    вероятно, быстрее, но я держал пари, что различие составляет меньше чем 10% – Jader Dias 23 May 2011 в 19:00

Возможно, Вы нашли бы Возвращение удовлетворение Вашим потребностям. Это не излишество и прибывает упакованное только пустыми функциями, которых большинство из нас потребовало бы. dev и участники были очень строги на том, какой код был внесен.

Это официальная страница

13
ответ дан Filip Dupanović 24 May 2012 в 03:37
поделиться
  • 1
    @nCdy как SirViver сказал Exception of type 'System.OutOfMemoryException' was thrown. – Jader Dias 23 May 2011 в 19:04

Я - разработчик Автора Возвращения и некоторые проблемы, которые Вы упомянули, были зафиксированы в бете версии 2. Можно загрузить это от offcial веб-сайта с примером приложения также.

  • Требует автозагрузки (препятствующий производительности)
  • Использование по сути небезопасное понятие 'вопросов о безопасности'. Dealbreaker!

вопросы о безопасности теперь не используются, и более простая система забытого пароля была помещена на месте.

  • типы Возврата являются чем-то вроде мешанины истинных, ложных, ошибки и кодов успеха

, Это было зафиксировано в версии 2 и возвращает булевы значения. Я ненавидел мешанину так же как Вы.

  • не сцепляется в систему проверки CI

, пример приложения использует систему проверки CI.

  • не позволяет пользователю снова посылать код 'потерянного пароля'

происходящая Работа

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

Это - все еще происходящая работа поэтому, если больше имеют предложения, сохраните их прибытием.

- Попкорн

пз: Спасибо за рекомендацию Возвращения.

30
ответ дан Svish 24 May 2012 в 14:37
поделиться
  • 1
    @nCdy: Это - действительно плохое предложение (в этом случае)! Отметьте различие: he' s использование File.ReadLines(), который на самом деле возвращает IEnumerable<string> и просто делает yield return из того, что в основном делает его первый отрывок. File.ReadAllLines() читал бы все строки в память, которая будет ужасной мудрой производительностью. Однако конечно, если Вы делаете , уже имеют массив, который необходимо использовать Length вместо Count();) – SirViver 24 May 2011 в 05:58

Ion_auth! Выглядит очень многообещающе и занимает мало места! Мне нравится ..

http://github.com/benedmunds/CodeIgniter-Ion-Auth

37
ответ дан 22 November 2019 в 23:46
поделиться

Обратите внимание, что "полный список" Йенса Роланда не включает роли пользователей. Если вас интересует назначение различных ролей пользователей (например, admin/user или admin/editor/user), эти библиотеки позволяют это сделать:

  • Ion_Auth (перезапись Redux)
  • Redux
  • Backend Pro

Tank_Auth (#1 выше в списке Дженса) не имеет ролей пользователей. Я понимаю, что это не совсем часть аутентификации, но поскольку

  • аутентификация и управление ролями обрабатываются при загрузке страницы
  • Оба включают безопасность
  • Одна и та же таблица/модель может быть использована для обоих.
  • Обе могут быть настроены на загрузку в конструкторе контроллера (или даже автозагрузку)

Имеет большой смысл иметь одну библиотеку для обработки обеих, если вам это нужно. Я перехожу на Ion_Auth с Tank_Auth из-за этого.

58
ответ дан 22 November 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: