Задать вопрос
@antokha

Нормально ли так делать?

Привет. Написал авторизацию пользователя. Есть форма, где он вводит email и пароль, после чего все это дело проверяется по базе. Пароль хешируется, солится как тому полагается, у каждого пользователя записан уникальная хеш строка, которую записываю в сессию.
При авторизации пользователя я сравниваю уникальную строку хеша из базы с той, что находится в сессии. При этом у меня постоянно делается запрос к базе для получения уникальной строки конкретного пользователя, чтобы сравнивать потом с тем что в сессии. Такая проверка делается постоянно на страницах где нужно проверить авторизован ли пользователь.
Может ли перестать работать база данных если будет слишком много запросов к ней? Может лучше просто записать что то в сессию, например, $_SESSION['auth'] = 1, и потом проверять если 1 то авторизован. Но ведь ее смогут подделать? Или такое нельзя делать? Скажите как лучше всего будет написать.
  • Вопрос задан
  • 314 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Может лучше просто записать что то в сессию, например, $_SESSION['auth'] = 1

Да.
Но ведь ее смогут подделать? Или такое нельзя делать?

Не могут, пользователь знает лишь идентификатор сессии на сервере, изменить данные в ней он не может.
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
Сессии хранятся на сервере, Куки хранятся на стороне клиента, т.е. к сессиям доступ может получить только лишь тот, кто может получить доступ и к самим файлам на сервере, а к кукам доступ может получить сам пользователь, вот они то и не безопасны.
Это нормально, вряд ли у вас там 100500 тыс активных пользователей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Подделать сессию == подделать куку индентификатора сессии. Если у злоумышленника есть куки сессии, то абсолютно все равно как в сессии вы храните авторизацию. Если их нет, то ему никак не поможет то, что в сессии просто флаг авторизации. По безопасности два этих способа - хранить auth=1 или какой-то там хэш ничем не отличаются. Ну можно с небольшой натяжкой сказать что auth=1 чуть безопаснее, потому что хэш вы-то от пароля храните, а значит в случае получения файлов сессии у злоумышленника есть гипотетический шанс попытаться восстановить пароль по хэшу, в случае если ему попадут в руки файлы сессий.
Ответ написан
Комментировать
@DipperTeam
Python Developer
Во первых перед проверкой нужно фильтровать формы, вам могут подсунуть разные javasript скрипты и опасный код который может взломать ваш сайт...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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