IIS7 ASP.NET 进程内会话在应用程序回收后不会丢失

发布于 2024-09-15 15:49:32 字数 141 浏览 7 评论 0原文

我有一个在 IIS7 下运行的 ASP.NET MVC 应用程序。它使用默认的进程内会话管理,根据我读到的所有内容,在应用程序池回收后应该会丢失用户的会话。 但似乎并没有失去它。即使 IIS 重置也不会丢失会话。 IIS7 中是否发生了一些使会话保持活动状态的更改?

I've got an ASP.NET MVC app running under IIS7. It's using the default in-proc session management, which, according to all that I read, should lose the users' session after an app pool recycle.
It doesn't seem to be losing it though. Even an IIS reset doesn't lose the session.
Has something changed in IIS7 that keeps the session alive?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半葬歌 2024-09-22 15:49:32

这是由于 cookie 重播 - 发生的情况是您的浏览器发送带有旧身份验证票证的 cookie,该 cookie 被接受为新会话,因为 Web 服务器不存储有效和过期的身份验证票证以供以后比较。如果恶意用户获得有效的表单身份验证 cookie,这会使您的网站容易受到重放攻击。要提高使用表单身份验证 cookie 时的安全性,请参阅下面的 MSDN 链接:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx

为了提高使用表单身份验证 cookie 时的安全性,您
应该执行以下操作:

  • 通过将 SlidingExpiration 属性设置为 false,对表单身份验证 Cookie 使用绝对过期时间。这限制了窗口
    可以重放被劫持的 cookie。

  • 仅通过安全套接字层 (SSL) 发出和接受身份验证 Cookie,方法是将 RequireSSL 属性设置为 true 并通过
    在 SSL 下运行整个网站。设置 RequireSSL 属性
    设置为 true 可确保 ASP.NET 永远不会发送身份验证 cookie
    通过非 SSL 连接到浏览器;然而,客户可能
    不遵守 cookie 上的安全设置。这意味着客户
    可能通过非 SSL 连接发送表单身份验证 cookie,
    从而使其容易被劫持。您可以阻止客户
    通过运行以明文形式发送表单身份验证 cookie
    整个网站均采用 SSL。

  • 使用服务器上的持久存储来记录用户何时注销网站,然后使用应用程序事件,例如
    PostAuthenticateRequest事件判断当前用户是否
    已通过表单身份验证进行身份验证。如果用户是
    使用表单身份验证进行身份验证,并且如果中的信息
    持久存储表明用户注销,立即清除
    身份验证 cookie 并将浏览器重定向回登录名
    页。成功登录后,更新存储以反映
    用户已登录。当您使用此方法时,您的应用程序必须
    跟踪用户的登录状态,并且必须强制空闲用户
    退出。

(.NET Framework 1.1、2.0、3.0、3.5、4.0、4.5、4.5.1、4.5.2、4.6、
4.6.1、4.6.2、4.7、4.7.1、4.7.2、4.8、4.8.1)

This is due to cookie replay - what happens is that your browser sends the cookie with old authentication ticket which is accepted as a new session as the Web server does not store valid and expired authentication tickets for later comparison. This makes your site vulnerable to a replay attack if a malicious user obtains a valid forms authentication cookie. To improve security when using a forms authentication cookie see MSDN link below:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx

To improve security when using a forms authentication cookie, you
should do the following:

  • Use absolute expiration for forms authentication cookies by setting the SlidingExpiration property to false. This limits the window in
    which a hijacked cookie can be replayed.

  • Only issue and accept authentication cookies over Secure Sockets Layer (SSL), by setting the RequireSSL property to true and by
    running the entire Web site under SSL. Setting the RequireSSL property
    to true ensures that ASP.NET will never send an authentication cookie
    to the browser over a non-SSL connection; however, the client might
    not honor the secure setting on the cookie. This means the client
    might send the forms authentication cookie over a non-SSL connection,
    thus leaving it vulnerable to hijack. You can prevent a client from
    sending the forms authentication cookie in the clear by running the
    entire Web site under SSL.

  • Use persistent storage on the server to record when a user logs out of the Web site, and then use an application event such as
    PostAuthenticateRequest event to determine whether the current user
    was authenticated with forms authentication. If the user was
    authenticated with forms authentication, and if the information in
    persistent storage indicates the user is logged out, immediately clear
    the authentication cookie and redirect the browser back to the login
    page. After a successful login, update storage to reflect that the
    user is logged in. When you use this method, your application must
    track the logged-in status of the user, and must force idle users to
    log out.

(.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6,
4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文