Почему по умолчанию для свойства requireSSL FormsAuthentication установлено значение false!

Примечание. Это НЕ вопрос ASP.NET MVC, связанный с атрибутом [RequireSSL]. Это совсем другое - просто то же имя.


Проверка подлинности форм ASP.NET имеет RequireSSL свойство, которое требует, чтобы cookie аутентификации для членства в ASP.NET всегда отправлялся только через SSL. Это сделано для предотвращения кражи файлов cookie (например, путем прослушивания сети) и выдачи себя за пользователя.

Так что мне интересно - со всеми изменениями, внесенными MS, заботящимися о безопасности (такими как создание http://www.codinghorror.com/blog/archives/001167.html по умолчанию) почему requireSSL не по умолчанию true?

Считается ли прослушивание файлов cookie «незначительной» угрозой безопасности?

Считается ли приемлемым риск оставить его ложным, если только соединение действительно не позволяет мне получить доступ к защищенным / личным данным? Если это неприемлемо - как мне вернуть пользователя на http и при этом узнать, кто они?

Чтобы предотвратить захват и подделку файлов cookie проверки подлинности с помощью форм при пересечении сети, убедитесь, что вы используете SSL на всех страницах, требующих доступа с проверкой подлинности, и ограничьте билеты проверки подлинности с помощью форм для каналов SSL, установив для элемента requireSSL = "true".

Чтобы ограничить файлы cookie проверки подлинности с помощью форм для каналов SSL

Установите для элемента requireSSL = "true", как показано в следующем коде.

Устанавливая requireSSL = "true", вы устанавливаете свойство безопасного cookie, которое определяет, должны ли браузеры отправлять cookie обратно на сервер. Если задано свойство secure, файл cookie отправляется браузером только на защищенную страницу, которая запрашивается с использованием URL-адреса HTTPS.

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


person Simon_Weaver    schedule 06.11.2009    source источник
comment
Я предполагаю, это потому, что веб-сайты не используют SSL по умолчанию. Для работы вам понадобится сертификат SSL.   -  person Greg    schedule 22.11.2010


Ответы (1)


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

person Falkayn    schedule 25.11.2010