2015-03-16 4 views
0

Я только что понял, что моя система входа абсолютно не защищена.Проверьте, вошел ли пользователь в систему

Так что я подумал о чем-то:.

  • Пользователь пытаются войти
  • проверить в базе данных, если хэш (пароль) = пароль хэш в БД.
  • Если это нормально, я поставил печенье так:
setcookie ("pseudo", $_POST['pseudo'], time() + 36000); 
  • Затем на каждой странице «член», я проверяю, если пользователь вошел в систему с:
if (isset($_COOKIE['pseudo'])) 

Но то, что я не понимаю, что любой пользователь может создать печенье по имени псевдо ... Так означает ли это, что я должен хранить пароль в файле cookie и проверять на каждой странице «участника» базу данных?

ответ

2

Вы должны использовать сеансы и их переменные, они хранятся на сервере, поэтому пользователь не может изменить свои значения.

Прочитайте это: http://php.net/manual/en/intro.session.php

И это: http://php.net/manual/en/session.examples.basic.php

Если соединение в порядке, создать сеанс (сделать любой материал, который вы хотите сделать, когда пользователь подключен).

+0

Благодарим вас за ответ. Это именно то, что я обычно делаю (я просто подумал, что пользователь может изменить $ _SESSION). Поскольку я должен использовать COOKIE, чтобы пользователь вошел в систему, я понимаю, что SESSION для входа в систему, но почему люди хранят пароль или имя пользователя внутри $ _COOKIE? – cyclone200

+1

Люди, которых я знаю, не хранят текстовый пароль внутри $ _COOKIE. ;) Даже не хешированный пароль. Имя пользователя обычно публично, поэтому мне кажется, что я должен хранить его в $ _COOKIE, но это не обязательно ... – kmas

Смежные вопросы