Asp.net core 此ASP.NET核心登录是否存在与安全漏洞相关的漏洞?

Asp.net core 此ASP.NET核心登录是否存在与安全漏洞相关的漏洞?,asp.net-core,websecurity,Asp.net Core,Websecurity,背景/背景: 获取任何启用用户登录的现成ASP.NET核心模板。您也可以使用外部登录提供商google、facebook、msft等。或者,只需克隆此示例web应用程序: 测试: 登录到创建的测试网站。(我们使用的测试用户名:neel) 使用Fiddler或web developer工具等记录任何授权的web请求。我们记录了eShopOnWeb示例网站的请求,其中显示了登录用户的个性化购物车 注销 关闭浏览器 以来宾模式打开网站。(不要登录)。您可以选择完全不同的浏览器 重播第2步。(这使用完全

背景/背景:

获取任何启用用户登录的现成ASP.NET核心模板。您也可以使用外部登录提供商google、facebook、msft等。或者,只需克隆此示例web应用程序:

测试:

  • 登录到创建的测试网站。(我们使用的测试用户名:neel)
  • 使用Fiddler或web developer工具等记录任何授权的web请求。我们记录了eShopOnWeb示例网站的请求,其中显示了登录用户的个性化购物车
  • 注销
  • 关闭浏览器
  • 以来宾模式打开网站。(不要登录)。您可以选择完全不同的浏览器
  • 重播第2步。(这使用完全相同的包含cookie、令牌等的头)
  • 观察: 这将成功返回用户neel的购物车项目

    我面临两个问题:

  • 这是一个登录相关的漏洞吗?我想是的!!令牌是否应该随着注销而过期(会话销毁)
  • 如果这是一个漏洞,如何修复它?防伪令牌内置身份标识,但似乎没有帮助

  • 如果是模板,则可能需要添加代码以保护应用程序。它是一个模板是有原因的,它不一定会做所有你需要的事情,它会开箱即用。当您注销时,注销代码是否会破坏cookies和过期令牌?你基本上是在做一个用户以用户身份登录,然后注销,然后以访客身份进入站点的逻辑。他们仍然是一个真正的用户,为什么它不承认这一点呢?如果一个中间人偷了他们的代币并用它来买东西,这怎么会是一个安全问题?由于该模板实现了登录功能,我不确定注销操作是否没有破坏cookie。关于您的用户相关问题,您似乎误解了。为什么来宾用户可以看到我的亚马逊购物车?@RyanWilson,数据库中没有存储购物车项目。我特别提到我们也可以从不同的浏览器中检索。我在推测可能的原因。但这听起来像是通过fiddler进行监视,并使用相同的头和令牌,该令牌在注销时未设置为过期。它将请求视为由登录名1发出,因为您仍然在请求中传递所有相同的信息。我会查看注销功能,看看它是否将令牌设置为过期。如果您使用JWTs,您可能会发现这篇文章很有用-