gpt4 book ai didi

c# - 如何在注销后放弃 Azure 应用服务 session

转载 作者:行者123 更新时间:2023-12-03 02:50:23 24 4
gpt4 key购买 nike

我有简单的 ASP.NET 应用程序,它部署为 Azure 应用服务。应用程序使用 aad 作为身份验证方法。

在 Azure 门户中使用 "Express" management mode 配置身份验证(没有身份验证代码,只有门户配置)。身份验证本身工作正常。

问题是,从应用程序注销后,服务器 session 保持唤醒状态,并且用户可以使用之前使用的 AppServiceAuthSession cookie 值对应用程序进行身份验证访问。

以下过程演示如何使用之前保存的 AppServiceAuthSession 值访问经过身份验证的数据。

  1. 使用 aad 登录应用程序(浏览到 https://[myapp].azurewebsites.net -> Azure AD 登录 -> 没问题)
  2. 存储 cookie 的值:AppServiceAuthSession
  3. 通过浏览以下网址注销:https://[myapp].azurewebsites.net/.auth/logout
  4. 使用之前存储的 cookie 值执行 http get,格式如下:curl --cookie "AppServiceAuthSession=[value]"-X GET https://[myapp].azurewebsites.net
  5. 使用之前使用过的 Cookie 值检索索引页。

如何防止这种情况发生,以及如何在注销时正确放弃所有 session 数据?

最佳答案

“防范”这种情况是没有意义的。

攻击者已经破坏了用户的浏览器并获得了对存储在其中的 cookie 的访问权限。根据定义,这个 cookie 是一个 secret ,可以证明 HTTP 客户端的身份。如果攻击者已经有权访问它,他们就可以通过他们选择的任意多种方式使用它,而您将无法阻止或区分合法访问服务器的真实用户。

唯一真正的解决方案是使用 HTTPS .

引用:

https://en.wikipedia.org/wiki/Session_hijacking

https://en.wikipedia.org/wiki/HTTPS

关于c# - 如何在注销后放弃 Azure 应用服务 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56395878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com