Как установить флаг безопасности в Cookie сессии ASP.NET, чтобы он передавался только через HTTPS и никогда не был простым HTTP?Как установить флаг безопасности в cookie сессии ASP.NET?
ответ
Есть два способа, один httpCookies
элемент web.config
позволяет включить requireSSL
, которые передают только все кук, включая сессию SSL только, а также внутри формы проверки подлинности, но если вы включите SSL на httpcookies вы должны также включить его внутри формы тоже.
Редактировать для ясности: Поместите это в <system.web>
<httpCookies requireSSL="true" />
В <system.web>
элемент, добавьте следующий элемент:
<httpCookies requireSSL="true" />
Однако, если у вас есть <forms>
элемент ваш блок system.web\authentication
, то это переопределит настройку в httpCookies
, установив его на значение по умолчанию false
.
В этом случае необходимо добавить атрибут requireSSL="true"
к элементу формы.
Таким образом, вы будете в конечном итоге с:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
Незначительное редактирование (нужен auth-узел в системе btw.и веб-формы):
Вы можете избежать других параметров web.config наиважнейший ваш
Кроме того, если есть элемент 'roleManager', то его атрибут' cookieRequireSSL = "true" 'должен также должно быть установлено значение true. Ссылка https://msdn.microsoft.com/en-us/library/system.web.security.roles.cookierequiressl(v=vs.110).aspx –
Вещи становятся беспорядочными, если вы говорите о зарегистрированном коде в корпоративной среде. Мы обнаружили, что лучший подход, чтобы иметь web.Release.config содержат следующее:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
Таким образом, разработчики не влияет (работает в режиме отладки), и только серверы, которые получают релиз сборки требуется, чтобы файлы cookie были SSL.
+1 Это сработало. Благодаря! – Alex
+1 Чтобы уточнить, это то, что вы должны добавить в web.config, чтобы установить безопасный флаг в файле cookie auth в true ' ' –
Tr1stan
Обратите внимание, что это зависит от вашего (на уровне сервера). Я привел область тестирования с ошибкой «Приложение настроено на выпуск защищенных куки-файлов. Эти файлы cookie требуют, чтобы браузер выдавал запрос по протоколу SSL (протокол https). Однако текущий запрос не превышает SSL». Это было связано с тем, что у нас есть обратный прокси-сервер, и браузеры подключаются к нему через SSL, но обратный прокси-сервер для сервера IIS находится над портом 80, поэтому приложение не считает его защищенным. – mlhDev