Я не буду касаться безопасности здесь, так как Infotekka уже немного углубилась в это. Похоже, вы спрашиваете, следует ли вам использовать СЕССИЮ или COOKIE, как если бы они были альтернативами друг другу.
Это не так. Они сервер (это была опечатка .. но я оставляю это, потому что это хороший каламбур) разных целей.
Поскольку HTTP не имеет состояния, PHP (и другие) предоставляют возможность имитировать конечный автомат в вашем приложении с помощью сеанса. Если вы этого не сделаете, вам придется использовать POST / GET между каждой страницей, чтобы сохранить согласованность данных, и если пользователь перейдет на другую страницу самостоятельно, эти данные будут потеряны! Таким образом, без СЕССИИ вы не смогли бы войти на ваш сайт, по крайней мере, не всегда.
Подводя итог, SESSION используется для хранения данных между несколькими страницами вашего сайта без использования HTTP в течение продолжительного периода времени. Вот для чего он используется.
Полагаю, вы могли бы использовать COOKIE для этого, но он намного сложнее, чем cookie, особенно когда имеешь дело с объектами, сериализованными в сеанс. Установленные COOKIE также не могут быть доступны до следующей загрузки страницы и должны быть установлены перед любым выводом сценария (как любой другой заголовок).
Сеансы должны быть именно такими - сеанс, который пользователь проводит, когда он сидит за своим компьютером, как бы долго он ни работал на сайте. Когда уходят, сеанс заканчивается.
Файлы cookie следует использовать для хранения простых данных в течение длительного периода времени. Если они часто заходят на сайт, они могут захотеть, чтобы их имя пользователя запомнилось для них, чтобы оно могло быть сохранено в виде файла cookie. Просто помните о проблемах безопасности, отмеченных Infotekka.
РЕДАКТИРОВАТЬ: Наконец, я должен добавить, что COOKIE передаются при каждом запросе страницы между пользователем и браузером. Больше файлов cookie означает больше времени загрузки страницы.