我有一个简单的ASP.NET应用程序,它被部署为Azure App Service。应用程序具有aad作为身份验证方法。
身份验证是使用"Express" management mode在Azure门户中配置的(没有用于身份验证的代码,只是门户配置)。身份验证本身运行良好。
问题是,从应用程序注销后,服务器会话保持唤醒状态,并且用户可以使用先前使用的AppServiceAuthSession
cookie值对应用程序进行身份验证访问。
以下过程显示了如何使用先前保存的AppServiceAuthSession
值访问经过身份验证的数据。
https://myapp.azurewebsites.net
-> Azure AD登录->没问题)AppServiceAuthSession
https://myapp.azurewebsites.net/.auth/logout
curl --cookie "AppServiceAuthSession=[value]" -X GET https://myapp.azurewebsites.net
如何防止这种情况,以及注销时如何正确放弃所有会话数据?
答案 0 :(得分:1)
“防御”这一点没有道理。
攻击者已经破坏了用户的浏览器,并可以访问其中存储的cookie。根据定义,此cookie是一个秘密,可证明HTTP客户端的身份。如果攻击者已经可以访问它,则他们已经可以选择的多种方式使用它,您将无法阻止或与真正访问服务器的真实用户区分开。
唯一真正的解决方案是使用HTTPS。
参考: