首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET会话Cookie上设置安全标志?

如何在ASP.NET会话Cookie上设置安全标志?
EN

Stack Overflow用户
提问于 2009-09-18 06:29:10
回答 3查看 208.8K关注 0票数 158

如何在ASP.NET会话Cookie上设置安全标志,使其仅通过HTTPS传输,而不是通过纯HTTP传输?

EN

回答 3

Stack Overflow用户

发布于 2011-05-31 23:39:06

<system.web>元素中,添加以下元素:

<httpCookies requireSSL="true" />

但是,如果您的system.web\authentication块中有一个<forms>元素,那么这将覆盖httpCookies中的设置,并将其设置回默认的false

在这种情况下,还需要将requireSSL="true"属性添加到表单元素。

所以你最终会得到:

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

有关这些元素的MSDN文档,请参阅herehere

票数 194
EN

Stack Overflow用户

发布于 2020-05-20 01:42:21

基于@Mark的回答,我将使用web.config转换将所有不同的cookie设置为Secure。这包括设置anonymousIdentification cookieRequireSSLhttpCookies requireSSL

为此,您需要将web.Release.config设置为:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
    <httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    <anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" /> 
  </system.web>
</configuration>

如果您将角色和表单身份验证与ASP.NET Membership Provider一起使用(我知道,这很古老),您还需要将roleManager cookieRequireSSLforms requireSSL属性设置为安全。如果是这样的话,你的web.release.config可能看起来像这样(包括在上面加上新的成员接口标记):

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
    <httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    <anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" /> 
    <roleManager xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
    <authentication>
        <forms xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    </authentication>
  </system.web>
</configuration>

此处介绍web.config转换的背景:http://go.microsoft.com/fwlink/?LinkId=125889

显然,这超出了操作的原始问题,但如果您没有将它们全部设置为安全,您可以预期安全扫描工具会注意到,并且您将在报告中看到红色标志。问我怎么知道的。:)

票数 4
EN

Stack Overflow用户

发布于 2019-03-01 19:11:37

secure -此属性告诉浏览器仅在通过安全通道(如HTTPS )发送请求时才发送cookie。这将有助于防止cookie在未加密的请求中传递。如果可以通过HTTP和HTTPS访问应用程序,那么就有可能以明文发送cookie。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1442863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档