Почему для свойства FormsAuthentication по умолчанию свойство requireSSL имеет значение false!
Примечание. Это НЕ вопрос ASP.NET MVC, относящийся к атрибуту [RequireSSL]. Это совершенно другое - просто то же имя.
Аутентификация ASP.NET Forms имеет свойство RequireSSL, которое требует, чтобы cookie-файл аутентификации для членства в ASP.NET отправлялся только через SSL. Это сделано для того, чтобы кто-то не мог украсть куки (например, путем прослушивания сети) и выдавать себя за пользователя.
Поэтому мне интересно - со всеми сознательными изменениями безопасности, которые внесли MS (например, установив куки HTTPOnly по умолчанию), почему requireSSL
не по умолчанию true
?
Считается ли перехват файлов cookie угрозой безопасности?
Считается ли приемлемым риск оставить его ложным, если соединение фактически не позволяет мне получить доступ к безопасным / личным данным? Если это неприемлемо - как мне вернуть пользователя на http и все равно узнать, кто он?
Чтобы файлы cookie проверки подлинности форм не перехватывались и не вмешивались при пересечении сети, убедитесь, что вы используете SSL со всеми страницами, для которых требуется аутентифицированный доступ, и ограничьте билеты проверки подлинности форм для каналов SSL, установив requireSSL = "true" для элемента.
Чтобы ограничить использование файлов cookie для проверки подлинности с помощью SSL
Установите requireSSL = "true" для элемента, как показано в следующем коде.
Устанавливая requireSSL = "true", вы устанавливаете свойство защищенного cookie, которое определяет, должны ли браузеры отправлять cookie обратно на сервер. Если установлено безопасное свойство, cookie-файл отправляется браузером только на защищенную страницу, запрашиваемую по URL-адресу HTTPS.
Примечание. Если вы используете сеансы без файлов cookie, необходимо убедиться, что билет проверки подлинности никогда не передается по незащищенному каналу.
1 ответ
Потому что вам требуется SSL-сертификат, если вы его включаете, а его приобретение обычно стоит денег. Вы также можете использовать сеансы браузера для управления незащищенной информацией - и на некоторых общедоступных веб-сайтах это может быть именно тем, что вы хотите сделать. В этом случае кто-то крадет сессионный cookie-файл другого человека, и в этом нет ничего деликатного. Так зачем же покупать и устанавливать SSL-сертификат?