простая возможность авторизации/входа в систему на php
Я хочу впервые реализовать вход пользователя на свой сайт. Я рад либо создать свое собственное решение, либо реализовать что-то с открытым исходным кодом, однако до сих пор ни один пакет не был очевидным выбором в моем поиске. Точно так же я полностью осознаю, что в лучшем случае как программист php среднего уровня я с большой вероятностью упущу что-то очевидное, если я разработаю свое собственное решение и оставлю двери хорошо и по-настоящему открытыми.
Есть какие-нибудь предложения? Мы не говорим о сверхчувствительных или платежных данных здесь, но в равной степени, я не хочу, чтобы люди испортили мой сайт!
Требования следующие - основанный на php - максимально простой, не требующий причудливых наворотов и свистков - не фреймворк Zend, так как теперь я свернул свою собственную очень базовую фреймворк, благодаря этому сообщению
Спасибо за ваш вклад.
4 answers
Несколько хороших охранников - это
- никогда не храните незашифрованный пароль пользователя в базе данных
- никогда не храните пароль пользователя или даже хэш пароля в данных сеанса или файлах cookie.
- Если вам нужно убедиться, что вход в систему безопасен, вы должны использовать https.
Я нашел эту статью очень полезной при создании систем входа с использованием файлов cookie:
"Ты выколешь себе глаз, малыш".
Безопасность - это сложно. Мне неприятно это говорить, но шансы на то, что вы создадите простую и безопасную схему авторизации, довольно малы. Здесь нет простого режима. Поэтому вы, возможно, захотите начать с чтения множества кодов аутентификации в различных фреймворках/cmse и других местах, где вы можете увидеть, как это сделали другие, и начать исследование.
Вот несколько ссылок: http://www.topmost.se/personal/articles/casual-cryptography-for-web-developers.htm http://pear.php.net/packages.php?catpid=1
Я нахожу, что для некоторых применений достаточно создать собственную аутентификацию с использованием http. Я бы рекомендовал это в качестве отправной точки.
Поскольку у вас есть собственная базовая платформа, не должно быть слишком сложно включить код аутентификации в какое-то общее место.
Некоторые преимущества заключаются в
- Не так много кода.
- Не требует файлов cookie или перезаписи URL-адресов.
Недостатки
- Плохо масштабируется для более детального контроля доступа.
- Нет простого способа "выйти из системы".
--
bmb
Это не так сложно и весело кодировать, как новичку.
Вам нужно место для хранения ваших данных (скажем, база данных mysql).
У вас должно быть, по крайней мере, поле для входа и поле пароля. (пароль должен храниться в зашифрованном виде, например, с использованием sha1()).
Теперь вам нужно отобразить форму входа в систему. Я предполагаю, что это нормально для вас.
Что нужно делать, когда мы получаем логин и пароль?
Запросите базу данных, чтобы узнать, есть ли совпадение с помощью login_base==login_form и password_base==sha1(форма пароля).
Если да, вы устанавливаете что-то, например, сеанс.
Таким образом, на странице, где необходимо войти в систему, вам нужно только проверить, установлен ли сеанс.
Это для основы; затем вы можете добавить несколько уровней и так далее.