безопасная система входа в систему PHP? - PullRequest
7 голосов
/ 27 августа 2010

Я разрабатывал CMS на основе PHP для использования на веб-сайте моей команды робототехники.Конечно, есть много других платформ, но что в этом забавного?

На полном серьезе, тем не менее, мы получаем дополнительные очки за то, что можем сказать, что мы сделали больше, чем просто создали шаблон для Drupal илиWP.Это немного не связано, но я бы хотел когда-нибудь выпустить CMS как FOSS, но он обязательно должен стать более зрелым и более безопасным.Но я отвлекся.

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

Хороший учебник по этому вопросу также может помочь..

Спасибо за ваше время.

Ответы [ 4 ]

3 голосов
/ 27 августа 2010

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

http://jaspan.com/improved_persistent_login_cookie_best_practice

Отличный ресурс для постоянного управления файлами cookie, хотя он и не дает вам код, но и дает хорошую основу для создания более безопасной системы входа в систему.

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

1 голос
/ 27 августа 2010

эм, объяснение всех проблем заполнило бы книгу хорошего размера - не берите в голову их решения.

Версия краткого краткого резюме руководства идиота для Reader Digest:

  • используйте SSL
  • убедитесь, что для файлов cookie сеанса установлены флаги secure и httponly (перейдите к чтению перехвата сеанса, MITM-атаки)
  • повторно создайте идентификатор сеанса при входе в систему (перейдите к чтению сеансафиксация) и выход из системы
  • реализуют уровень абстракции над системой аутентификации и авторизации
  • реализуют отдельный уровень абстракции над каждым из этих двух компонентов
  • действительно реализуют страницупроверка авторизации
  • отработайте заранее, если вам нужно разделить ваши данные с точки зрения видимости / доступа
0 голосов
/ 30 августа 2012

Ну, здесь можно найти много информации:

Полное руководство по аутентификации веб-сайтов на основе форм

Нажав на некоторые ссылки на этомстраница, улучшит ваши знания по вопросам безопасности и входа в систему вопросы / проблемы / проблемы / решения /...

0 голосов
/ 27 августа 2010

Используйте некоторые уже существующие библиотеки, такие как http://freakauth.4webby.com/
Зачем изобретать велосипед!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...