Причина использования большего количества файлов cookie, чем просто хэш сеанса для аутентификации? - PullRequest
7 голосов
/ 27 декабря 2010

Я обычно общаюсь в сообществе, которое использует программное обеспечение для доски объявлений.

Я смотрел, что это программное обеспечение сохраняет в виде cookie в моем браузере.

Как видите, это экономит 6 файлов cookie. Среди них то, что я считаю важным для аутентификации:

  1. ngisessionhash: хэш текущего сеанса
  2. ngipassword: хэш (возможно, не простой пароль) пароля
  3. ngiuserid: идентификатор пользователя

Это мои предположения, конечно. Я не знаю точно, если ngilastactivity и ngilastvisit используются по той же причине.

Мой вопрос: зачем использовать все эти куки для аутентификации? Я предполагаю, что, возможно, генерация хеша сессии будет легкой, поэтому использование hashedpassword и userid повышает безопасность, но как насчет подмены cookie? Я в основном оставляю на клиенте всю основную информацию.

Что вы думаете?

ОБНОВЛЕНИЕ # 1

Содержимое этих файлов cookie - это то, что, я думаю, они содержат. Я не уверен в этом. Конечно, если вызвать cookie ngivbpassword и он содержит хэш, я думаю, это hashedpassword. Вероятно, это может быть пароль + соль.

Мое основное беспокойство вызывает то, что эти решения дают много информации, когда под cookie подделывают атаку.

ОБНОВЛЕНИЕ № 2 Этот вопрос не хочет критиковать то, как работает это конкретное программное обеспечение, но, учитывая эти ответы, я хочу просто узнать больше о защите программного обеспечения в веб-среде.

Ответы [ 4 ]

2 голосов
/ 27 декабря 2010

Это происходит потому, что файлы cookie сеанса и входа могут иметь разные жизненные циклы.

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

Эти файлы cookie также называются файлами cookie типа «Запомнить меня».

1 голос
/ 27 декабря 2010

Сессии не являются постоянными.Файлы cookie:

Обновление № 1: Я не работал с vBullettin, но похоже на классическую функцию "Запомнить меня".

Обновление № 2:

Да, это функция "Помни меня", я спрашиваю, почему они делают это таким образом

Хорошо ... Как тыреализовать функцию «Запомнить меня»?Вам, очевидно, нужно использовать куки, я думаю, это понятно.Теперь, что вы храните?

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

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

Третий способ - сохранить таблицу базы данных с «запомненными» сеансами, идентифицировать каждый из них длинной уникальной строкой и сохранить такую ​​строкув печенье.Строка может быть случайной или вычисляемой, но, конечно, случайность имеет то преимущество, что строку невозможно угадать, даже если вы знаете алгоритм.

Дальнейшая безопасность может быть достигнута путем сохранения дат, IP-адресов и других фрагментов.данные на сервере.

Как я уже сказал, я ничего не знаю о vBulleting, но, похоже, они используют метод 2 или метод 3.

Обновление № 3:

Содержимое этих файлов cookie - это то, что, я думаю, они содержат.Я не уверен в этом.Конечно, если вызвать cookie ngivbpassword и он содержит хэш, я думаю, это hashedpassword.Вероятно, это может быть пароль + соль. [...] Моя главная проблема заключается в том, чтобы эти решения давали много информации при атаке подмены файлов cookie.

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

Хранят ли они соленый пароль или это просто имя, это то, чего я не знаю.

0 голосов
/ 27 декабря 2010
  • Файлы cookie должны быть как можно меньше информации о том, кто вы на сервере.

  • Sessionhash, session_id или sid - это ваш уникальный идентификатор (ваша сессия на сервере). Остальные куки могут быть легко спрятаны на стороне сервера.

  • Хранение хэша пароля в файлах cookie является проблемой безопасности. Вам следует избегать этого.

  • Последние 4 файла cookie получены от объявлений Google.

PS. В любом случае, большинство досок объявлений не так хороши.

0 голосов
/ 27 декабря 2010

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

...