【问题标题】:Secure Authentication cookie Asp.Net安全认证 cookie Asp.Net
【发布时间】:2014-10-07 06:21:11
【问题描述】:

我有两个页面 P1.aspx(登录页面)和 P2.aspx(重定向页面),都配置了 SSL。 在 P1.aspx 中,我创建了将“Secure”属性设置为“true”的身份验证 cookie,并添加到 P1.aspx 的响应对象中。

但是当页面从 P1.aspx 重定向到 P2.aspx 时,P2.aspx 请求中的身份验证 cookie 将 cookie 的“Secure”属性显示为“false”。我不明白为什么请求 cookie 中的“安全”属性设置为“假”。

【问题讨论】:

  • 如果你在服务器端检查Secure,那么它不会是真的,因为浏览器不会发回这个属性。但是如果你在 Chrome DevTools 中查看,那么你可以发现这个 cookie 有 Secure = true
  • 在响应对象(P1.aspx)中的属性显示为“true”,但在请求对象(P2.aspx)中为“false”。两个cookie应该一样吧?客户端可以设置这个属性为false吗?

标签: c# asp.net security authentication cookies


【解决方案1】:

如果你在服务器端检查 Secure,那么它不会是真的,因为浏览器不会发回这个属性。但是如果你在 Chrome DevTools 中查看的话,你会发现这个 cookie 有 Secure = true。

这是来自wiki的引用:

除了名称-值对之外,服务器还可以设置这些 cookie 属性:cookie 域、路径、过期时间或最长期限, 安全标志和 HttpOnly 标志。 浏览器不会发送 cookie 属性返回给服务器。他们只会发送 cookie 的 名称-值对。浏览器使用 Cookie 属性来确定 何时删除 cookie、阻止 cookie 或是否发送 cookie (名称-值对)到服务器。

因此,您在请求中没有 Secure 属性并在发送时将其包含在 Response 中是完全可以的。浏览器只是不会在每个请求中将其发送回,但它仍然会使用它,如果请求不是 HTTPS,那么浏览器将不会使用此 cookie

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2016-06-07
    • 2015-12-30
    • 2013-01-19
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多