您现在的位置:新疆网站建设-新疆网站制作-新疆二域设计>> 帮助中心>常见问题>> IIS下的.net网站:加密会话(SSL)Cookie中缺少secure属性

IIS下的.net网站:加密会话(SSL)Cookie中缺少secure属性

作者:管理员  来源:互联网  发布时间:2025-09-29 10:00:55  点击数:0

IIS下的.net网站,安全扫描提示:加密会话(SSL)Cookie中缺少secure属性。

问题解释

Secure属性:当Cookie设置了Secure属性后,浏览器只会在通过HTTPS协议发起的请求中才会携带此Cookie。如果使用的是HTTP请求,则不会发送。这有效防止了窃听者通过明文的HTTP连接窃取用户的会话Cookie。

风险:如果您的网站使用了HTTPS,但会话Cookie没有设置Secure属性,那么用户在使用HTTP访问时(即使被重定向到HTTPS),其会话标识也有可能在不安全的通道中泄露。


修复方法:在web.config中配置

这是最直接、最常用且影响范围最广的方法。您只需要修改网站的web.config文件即可。

· 打开您网站根目录下的 web.config 文件。

· 在 <system.web> 或 <system.webServer> 节点下,找到或添加 <httpCookies> 元素。

· 将 requireSSL 属性设置为 true。


<configuration>
  <system.web>
    <!-- 其他配置... -->
    
    <!-- 这是关键配置:设置所有由ASP.NET发出的Cookie都要求SSL -->
    <httpCookies requireSSL="true" />
    
    <!-- 对于会话状态Cookie,也可以单独设置 -->
    <sessionState cookieSameSite="Strict" cookieless="UseCookies" timeout="20" cookieSecure="SslIfRequired" />
    
    <!-- 表单认证的Cookie -->
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" requireSSL="true" />
    </authentication>
  </system.web>
</configuration>


关键说明:


<httpCookies requireSSL="true" />: 这行配置会为所有由ASP.NET运行时自动生成的Cookie(包括Session Cookie、Forms Authentication Cookie等)自动加上Secure属性。

<forms requireSSL="true" />: 如果您使用了表单认证,这是一个额外的、更明确的设置。

<sessionState cookieSecure="SslIfRequired" />: 这个设置专门针对会话Cookie。SslIfRequired 是默认值,通常与顶层的 <httpCookies> 设置配合良好。为了更严格,您可以设置为 true。

修改后,请重启您的网站应用程序池以使配置生效。


上一篇:Nginx配置:只允许本站调用站内的mp4视频,禁止外部下载
下一篇:IIS下的.net网站安全扫描提示:Strict-Transport-Security 请求头配置错误

版权所有 新疆二域信息技术有限公司 All Rights Reserved 地址:乌鲁木齐市北京南路高新街217号盈科广场B座615 备案号:新ICP备14003571号-6 新公网安备 65010402000050号