2009-09-18 4 views

ответ

82

Есть два способа, один httpCookies элемент web.config позволяет включить requireSSL, которые передают только все кук, включая сессию SSL только, а также внутри формы проверки подлинности, но если вы включите SSL на httpcookies вы должны также включить его внутри формы тоже.

Редактировать для ясности: Поместите это в <system.web>

<httpCookies requireSSL="true" /> 
+1

+1 Это сработало. Благодаря! – Alex

+11

+1 Чтобы уточнить, это то, что вы должны добавить в web.config, чтобы установить безопасный флаг в файле cookie auth в true '' – Tr1stan

+6

Обратите внимание, что это зависит от вашего (на уровне сервера). Я привел область тестирования с ошибкой «Приложение настроено на выпуск защищенных куки-файлов. Эти файлы cookie требуют, чтобы браузер выдавал запрос по протоколу SSL (протокол https). Однако текущий запрос не превышает SSL». Это было связано с тем, что у нас есть обратный прокси-сервер, и браузеры подключаются к нему через SSL, но обратный прокси-сервер для сервера IIS находится над портом 80, поэтому приложение не считает его защищенным. – mlhDev

130

В <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> 

См here и here для MSDN документации этих элементов.

+2

Незначительное редактирование (нужен auth-узел в системе btw.и веб-формы): <аутентификации> <формы RequireSSL = "истинный" />

+1

Вы можете избежать других параметров web.config наиважнейший ваш путем включения атрибута «lockItem». Например: . Больше информации здесь http://www.dotnetnoob.com/2010/11/how-to-secure-aspnet-cookies.html – JTech

+0

Кроме того, если есть элемент 'roleManager', то его атрибут' cookieRequireSSL = "true" 'должен также должно быть установлено значение true. Ссылка https://msdn.microsoft.com/en-us/library/system.web.security.roles.cookierequiressl(v=vs.110).aspx –

12

Вещи становятся беспорядочными, если вы говорите о зарегистрированном коде в корпоративной среде. Мы обнаружили, что лучший подход, чтобы иметь web.Release.config содержат следующее:

<system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    <authentication> 
     <forms xdt:Transform="Replace" timeout="20" requireSSL="true" /> 
    </authentication> 
</system.web> 

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

 Смежные вопросы

  • Нет связанных вопросов^_^