простая возможность авторизации/входа в систему на php


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

Есть какие-нибудь предложения? Мы не говорим о сверхчувствительных или платежных данных здесь, но в равной степени, я не хочу, чтобы люди испортили мой сайт!

Требования следующие - основанный на php - максимально простой, не требующий причудливых наворотов и свистков - не фреймворк Zend, так как теперь я свернул свою собственную очень базовую фреймворк, благодаря этому сообщению

Спасибо за ваш вклад.

Author: Community, 2009-01-14

4 answers

Несколько хороших охранников - это

  • никогда не храните незашифрованный пароль пользователя в базе данных
  • никогда не храните пароль пользователя или даже хэш пароля в данных сеанса или файлах cookie.
  • Если вам нужно убедиться, что вход в систему безопасен, вы должны использовать https.

Я нашел эту статью очень полезной при создании систем входа с использованием файлов cookie:

 5
Author: Brian Fisher, 2009-01-14 18:16:16

"Ты выколешь себе глаз, малыш".

Безопасность - это сложно. Мне неприятно это говорить, но шансы на то, что вы создадите простую и безопасную схему авторизации, довольно малы. Здесь нет простого режима. Поэтому вы, возможно, захотите начать с чтения множества кодов аутентификации в различных фреймворках/cmse и других местах, где вы можете увидеть, как это сделали другие, и начать исследование.

Вот несколько ссылок: http://www.topmost.se/personal/articles/casual-cryptography-for-web-developers.htm http://pear.php.net/packages.php?catpid=1

 3
Author: jacobangel, 2009-01-14 18:03:40

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

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

Некоторые преимущества заключаются в

  • Не так много кода.
  • Не требует файлов cookie или перезаписи URL-адресов.

Недостатки

  • Плохо масштабируется для более детального контроля доступа.
  • Нет простого способа "выйти из системы".

--
bmb

 0
Author: bmb, 2009-01-14 19:30:02

Это не так сложно и весело кодировать, как новичку.

Вам нужно место для хранения ваших данных (скажем, база данных mysql).

У вас должно быть, по крайней мере, поле для входа и поле пароля. (пароль должен храниться в зашифрованном виде, например, с использованием sha1()).

Теперь вам нужно отобразить форму входа в систему. Я предполагаю, что это нормально для вас.

Что нужно делать, когда мы получаем логин и пароль?

Запросите базу данных, чтобы узнать, есть ли совпадение с помощью login_base==login_form и password_base==sha1(форма пароля).

Если да, вы устанавливаете что-то, например, сеанс.

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

Это для основы; затем вы можете добавить несколько уровней и так далее.

 -1
Author: Aif, 2009-01-14 18:04:13