【问题标题】:Asp.NET and CookiesAsp.NET 和 Cookie
【发布时间】:2011-11-24 23:39:02
【问题描述】:

在我的网站中,我没有使用 cookie。当用户登录时,我通过从数据库中获取密码来验证用户凭据,如果用户凭据得到验证,我会将电子邮件 ID 和其他用户相关信息存储到会话中。我使用其他页面中的会话值来验证该页面的用户。

网络配置:

<sessionState cookieless="true" />
    <authentication mode="Forms">
      <forms name=".YAFNET_Authentication" loginUrl="Home.aspx" 
protection="All" timeout="43200" cookieless="UseUri"/>
    </authentication>

如果我选择 UseUri 表示无烹饪,那么 url 是

(S(2zlu5ry2ewsqfuzkfcmy1xl5))/Home.aspx

附加到我的网址的内容,公开此值是否安全,我想使用无 cookie 会话,因为浏览该网站的大多数 iPhone 都禁用了 cookie。

我的网站有一个 SSL 证书。我担心如果在 url 中显示上述值会损害安全性?

【问题讨论】:

    标签: asp.net cookies web-config session-cookies sessionid


    【解决方案1】:

    默认情况下,会话 ID 值存储在 cookie 中。如果您提到无 cookie 模式,会话 id 将附加到 URL。

    来自 MSDN http://msdn.microsoft.com/en-us/library/ms178581.aspx

    会话标识符

    会话由一个唯一标识符标识,该标识符可由以下人员读取 使用 SessionID 属性。当会话状态为 ASP.NET 应用程序,对应用程序中一个页面的每个请求都是 检查从浏览器发送的 SessionID 值。如果没有 SessionID 提供值,ASP.NET 启动一个新会话和 SessionID 该会话的值与响应一起发送到浏览器。

    默认情况下,SessionID 值存储在 cookie 中。但是,您可以 还将应用程序配置为在 URL 中存储 SessionID 值 用于“无 cookie”会话。

    只要继续发出请求,会话就会被视为处于活动状态 具有相同的 SessionID 值。如果请求之间的时间 特定会话超过指定的超时值(以分钟为单位), 会话被视为过期。过期的请求 SessionID 值产生一个新的会话。

    安全说明 SessionID 值以明文形式发送,无论是作为 cookie 或作为 URL 的一部分。恶意用户可以访问 通过获取 SessionID 值并包括另一个用户的会话 它在对服务器的请求中。如果您要存储敏感信息 在会话状态下,建议您使用 SSL 加密任何 浏览器和服务器之间的通信,包括 SessionID 值。

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多