Проблемы безопасности файлов cookie - PullRequest
2 голосов
/ 09 июля 2011

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

Достаточно ли безопасен этот метод или мне следует придерживаться довольно четкого пути?

Ответы [ 2 ]

1 голос
/ 10 июля 2011

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

Я решил более сложной процедурой: Я помещаю один зашифрованный куки-файл, разделенный на 2 части (но 2 куки-файла также будут работать), один фиксированный, а другой - переменный в каждой сессии.Оба сохраняются также для проверки на стороне сервера: они являются только идентификаторами сеанса, в cookie не содержится никакой разумной информации, на сервере сохраняется соответствие с идентификатором пользователя.

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

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

1 голос
/ 09 июля 2011

Я бы порекомендовал вам использовать проверку подлинности с помощью форм для отслеживания зарегистрированных пользователей в приложении ASP.NET.

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