Безопасно ли хранить пользовательские данные, такие как зарегистрированный статус и идентификатор, в файлах cookie? - PullRequest
0 голосов
/ 11 августа 2010

Вопрос говорит практически обо всем.Я хочу сказать, может ли пользователь изменить значения своих файлов cookie, чтобы они отображались как «зарегистрированные», если он не зарегистрирован?

Ответы [ 4 ]

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

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

Подписание файлов cookie поможет вам определить, были ли ониподделал на клиенте.По сути, вы создаете HMAC ключей / значений и секретный ключ, известный только серверу.При каждом запросе вы пересчитываете MAC: если он соответствует предыдущему значению, все хорошо;в противном случае вы отклоните запрос.

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

Кроме того, вы должны знать, что простая защитаВаши куки не гарантируют, э ... безопасность :) Вы все еще можете быть уязвимы для Фальсификации межсайтовых запросов .

Для получения дополнительной информации о куки, проверьте этостатья .

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

Итак, если я поменяю user_id=1, стану ли я администратором?

Что если я введу это в адресную строку:

javascript:document.cookie=user_id=1&logged_in=true

InВообще это ужасная идея заново изобрести воли.Особенно, когда речь идет о безопасности, cookie всегда должен иметь очень большое случайное значение.Независимо от используемой вами платформы, для вас уже должен быть создан обработчик сеанса.

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

Все, что вы получаете от клиента (включая куки), небезопасно.Безопасный способ - установить cookie со случайным хешем, зарегистрировать хеш в базе данных вместе с идентификатором и временной меткой (и, возможно, даже IP), а затем проверить входящие куки по сохраненным хешам.Если вы установите срок действия файлов cookie через некоторое время, убедитесь, что вы также отклоняете их на сервере, если они приходят, когда они не должны.

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

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

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