Привет, я делаю это впервые. Я прочитал полное руководство по аутентификации веб-сайтов на основе форм и http://en.wikibooks.org/wiki/PHP_Programming/User_login_systems,, но у меня все еще есть сомнения относительно того, правильно ли я это делаю. Примечание: я делаю это для изучения, поэтому, пожалуйста, не предлагайте framework и php pear auth или любой другой связанный класс. Мне просто нужно несколько советов о том, что я могу сделать, чтобы улучшить это.
Мне не нужна безопасность в стиле ЦРУ, просто что-то базовое для входа на сайт:
Во всяком случае, так работает мой логин:
Подождите, пока пользователь нажмет кнопку «Войти»
if (isset ($ _ POST ['action']) && $ _POST ['action'] == 'Login')
Соответствует ли токен формы токену, сохраненному в сеансе? Если не умрете.
- Использование php-фильтров для проверки строки в имени пользователя и пароле
- Хэш-пароль (sha256) (с солью, я использую одну и ту же соль для каждого пароля)
- Используйте mysqli для проверки имени пользователя и хэшированного пароля (LIMIT 1 в SQL).
- Если совпадений не найдено, выведите ошибку - в противном случае установите сеанс (хешируется с помощью sha256)
В нижней части всего этого я помещаю следующую строку, о которой я больше всего беспокоюсь:
Я думаю, что, если сессия не установлена, то покажите форму входа и выйдите.
if
(!isset($_SESSION['authenticated'])) {
require_once 'html/login_form.html';
exit(); }
// secret stuff goes here
Полный код можно найти здесь . Это все еще неполный .
Я также попытаюсь реализовать это: Как я могу ограничить попытки входа пользователя в PHP .
Я благодарен за любые отзывы.