繁体   English   中英

使用身份验证模式的.NET“安全” Cookie =无

[英].NET 'secure' cookies using authentication mode = none

在我的web.config(IIS6.1 asp.net 4.0)中:

  <system.web>
    <authentication mode="None"/>
    <httpCookies httpOnlyCookies="true" requireSSL="true" />
  </system.web>

使用https浏览至localhost /都可以。 所有请求均已成功完成。 我的问题是我得到的cookie没有设置“安全”标志。 HTTP标志已设置。

如何获得安全标志? 我执行IPrincipal?

谢谢。

检查表单验证 web.config元素是否也将requireSSL设置为true ,因为该设置将覆盖System.Web httpCookies元素设置,并且默认值为false

设置此属性将从server <> client发送'Secure'属性,指示如果使用SSL连接,则该客户端只能将其传输回去。

简而言之,您可以通过在SSL上运行ASP.NET应用程序来进行测试。 一种简单的方法是在Visual Studio>“属性”>“将SSL Enabled设置为true”中选择Web项目。

此外,OWASP还提供了一篇有关测试cookie属性的不错的文章 在本文中,前面提到的安全属性的描述是可以理解的:

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

找到了它-确实是requireSSL属性导致了这一点。 但是,它是在应用程序的其他位置设置的(在sso.config文件中-设置为false并覆盖了我在web.config中放置的内容)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM