Лучше хранить пользовательские данные в базе данных, а не в cookie? [закрытый]

5
задан Bhargav Rao 19 June 2018 в 15:40
поделиться

4 ответа

Ваш подход определенно верен, но имеет одну фундаментальную проблему (которая, вероятно, является причиной создания файлов cookie): идентификация.

Как можно отличить пользователя A от пользователя B, не спрашивая имени пользователя и пароля? Файлы cookie предоставляют простой способ сделать это различие. Как только пользователь будет идентифицирован, ваши баллы станут полностью действительными.

Как правило, конфиденциальная информация не предназначена для хранения в файлах cookie. Такую информацию лучше всего хранить на стороне сервера (как вы указали).

6
ответ дан 18 December 2019 в 14:41
поделиться

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

Вы также упоминаете сеансы - сеансы представляют собой файлы cookie (вроде как).

1
ответ дан 18 December 2019 в 14:41
поделиться

Обычно мы используем файлы cookie, потому что мы не обязательно сохраняем в них какие-либо конфиденциальные данные. Если в вашем приложении есть конфиденциальные данные, с которыми вы не хотите, чтобы кто-либо возился, тогда непременно используйте все имеющиеся в вашем распоряжении инструменты на стороне сервера и БД, чтобы решить эту проблему, но не все приложения и реализации нуждаются в таком уровне безопасности в этих отношениях. Настройка файлов cookie предназначена для удобства, вот и все.

1
ответ дан 18 December 2019 в 14:41
поделиться

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

Что вам действительно нужно на клиентской машине, так это один небольшой файл cookie, содержащий какую-то неясную, трудно угадываемую ссылку на эти конфиденциальные данные.

Поздравляем! Вы только что заново изобрели сеансы!

(Веб-серверы можно настроить для хранения данных сеанса в базе данных, а не в плоских файлах на сервере, если вы предпочитаете такой способ.)

3
ответ дан 18 December 2019 в 14:41
поделиться
Другие вопросы по тегам:

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