Использует ли файлы cookie угрозу безопасности приложений в asp.net? Или мы используем только средство сохранения статистики пользователя и неинтересной информации? Получил немного информации об использовании файлов cookie в asp.net из моего собственного блогаИспользует ли файлы cookie угрозу безопасности приложений в asp.net?
ответ
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.
Использование файлов cookie не представляет угрозы для приложения. Это то, как вы их используете, и информацию, которую вы храните, могут быть проблематичными. Например, вы должны избегать хранения конфиденциальной информации в файлах cookie. Если они используются для аутентификации, они всегда должны передаваться по защищенному каналу.
Это зависит от того, как вы их используете. Куки-файлы всегда должны рассматриваться как недопустимые входные данные, потому что их можно подделать, отредактировать или удалить. Я видел приложения, в которых cookie содержит что-то вроде admin=true
, что, очевидно, очень плохо. Если вы просто отбрасываете руководство и используете его для отслеживания кого-то, но не заботитесь, если ваши результаты точны, тогда все в порядке.
Если вы хотите, чтобы cookie был полу-действительным, вы должны добавить что-то вроде HMAC самому файлу cookie, что и делает ASP.NET с помощью файла cookie проверки подлинности форм (и поля ViewState). Конечно, это не останавливает пользователя, удаляющего файл cookie, или копирование действительного с другого пользователя.
Пока вы не храните важную информацию в файле cookie (например, пароль пользователя), все должно быть хорошо.
Будьте осторожны со сценариями, как что:
Вы сохраняете идентификатор пользователя в куки
Вы тест против этого ID, чтобы увидеть, если он вошел в
пользователь изменяет идентификатор вручную в файле cookie (легко сделать)
Пользователь получает доступ к другой учетной записи
Я хочу сказать, что вы должны иметь в виду, что пользователь может получить доступ к куки-файлу и изменить его, поэтому не храните ничего, что вы не хотели бы видеть.
Последнее, что куки часто имеют limited size, поэтому будьте осторожны: не храните слишком много информации. Если вы храните слишком много вещей (например, большой объект), вы можете в итоге сломать вещи.
Далее я хотел бы спросить, как обнаружить, что клиентский браузер поддерживает файлы cookie или нет?Также существуют разные способы, в которых браузер интерпретирует файлы cookie по-разному, что может повлиять на их обработку asp.net – HotTester