我正在使用ASP.NET Core中的Cookie中间件来处理会话cookie。会话cookie数据由框架使用Data Protection API加密。
只是想详细了解此流程的保护级别。这些是我目前的假设:
无法在浏览器中传输或在浏览器中查看Cookie数据且防篡改
如果通过HTTP嗅探
如果仅通过HTTPS发送和发送,则无法重播cookie数据
如果这些假设中的任何一个是错误的或需要更多细节,那么我会很感激答案。
答案 0 :(得分:2)
您的假设是正确的:虽然默认情况下身份验证Cookie被标记为HttpOnly
,但没有任何内容可以防止攻击者从浏览器的容器中窃取cookie并按原样使用它来管理恶意请求在受害者的机器上安装恶意软件。
将来,ASP.NET Core将支持名为" TLS令牌绑定的功能"这将使窃取身份验证cookie变得更加困难。
当服务器和用户代理都支持时,此功能允许服务器绑定敏感数据,如身份验证cookie或承载令牌,其密码值仅由原始客户端(即浏览器)知道。
在ASP.NET Core中,此功能将在加密级别实现:浏览器传输的密码将用于派生Data Protection用于保护和取消保护身份验证cookie的加密/验证密钥,因此不会一个人将能够使用被盗的cookie,而无需发送相应的令牌。