2009-12-28 2 views
0

Использует ли файлы cookie угрозу безопасности приложений в asp.net? Или мы используем только средство сохранения статистики пользователя и неинтересной информации? Получил немного информации об использовании файлов cookie в asp.net из моего собственного блогаИспользует ли файлы cookie угрозу безопасности приложений в asp.net?

+0

Далее я хотел бы спросить, как обнаружить, что клиентский браузер поддерживает файлы cookie или нет?Также существуют разные способы, в которых браузер интерпретирует файлы cookie по-разному, что может повлиять на их обработку asp.net – HotTester

ответ

3

IMO cookie - один из лучших вариантов для некоторых ситуаций. Например, сохранение выбранного пользователем языка. Также вы можете кэшировать некоторую конфиденциальную информацию в cookie как роли пользователей в качестве менеджера ролей ASP.NET. Но вы должны зашифровать его без сомнения, а также вы должны установить HttpCookie.HttpOnly = true, чтобы предотвратить доступ javascript к файлу cookie. Не беспокойтесь о поддержке файлов cookie в разных браузерах, размер является премьером (браузеры поддерживают только 4096 байт на файл cookie). Cookie - это убийца полосы пропускания, вызывающий отправку и получение в каждом запросе и ответе. Таким образом, вы должны использовать его в avarage. Вы можете проверить, поддерживает ли браузер клиента cookie следующим образом.

if (Request.Browser.Cookies) { // The browser supports cookie } 

Чтобы узнать больше о печенье, посетите here.

1

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

1

Это зависит от того, как вы их используете. Куки-файлы всегда должны рассматриваться как недопустимые входные данные, потому что их можно подделать, отредактировать или удалить. Я видел приложения, в которых cookie содержит что-то вроде admin=true, что, очевидно, очень плохо. Если вы просто отбрасываете руководство и используете его для отслеживания кого-то, но не заботитесь, если ваши результаты точны, тогда все в порядке.

Если вы хотите, чтобы cookie был полу-действительным, вы должны добавить что-то вроде HMAC самому файлу cookie, что и делает ASP.NET с помощью файла cookie проверки подлинности форм (и поля ViewState). Конечно, это не останавливает пользователя, удаляющего файл cookie, или копирование действительного с другого пользователя.

1

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

Будьте осторожны со сценариями, как что:

  • Вы сохраняете идентификатор пользователя в куки

  • Вы тест против этого ID, чтобы увидеть, если он вошел в

  • пользователь изменяет идентификатор вручную в файле cookie (легко сделать)

  • Пользователь получает доступ к другой учетной записи

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

Последнее, что куки часто имеют limited size, поэтому будьте осторожны: не храните слишком много информации. Если вы храните слишком много вещей (например, большой объект), вы можете в итоге сломать вещи.