cookies - ASP.NET Core 中的数据保护 API 是否可以防止重放攻击?

标签 cookies asp.net-core

我正在 ASP.NET Core 中使用 Cookie 中间件来处理 session cookie。 session cookie 数据由框架使用数据保护 API 进行加密。

只是想详细了解此过程的保护级别。这些是我目前的假设:

  • Cookie 数据在传输过程中或静态时无法在浏览器中查看,并且防篡改

  • 如果通过 HTTP 嗅探,则可以重放 cookie 数据

  • 如果仅通过 HTTPS 发布和发送 Cookie 数据,则无法重放

如果这些假设中有任何一个是错误的或需要更多细节,那么我将不胜感激。

最佳答案

您的假设是正确的:虽然默认情况下身份验证 cookie 被标记为 HttpOnly,但没有什么可以阻止攻击者从浏览器容器中窃取 cookie 并按原样使用它来发出恶意请求(如果他设法)在受害者的计算机上安装恶意软件。


将来,ASP.NET Core 将支持一项名为“TLS token 绑定(bind)”的功能,该功能将使窃取身份验证 cookie 变得更加困难。

当服务器和用户代理都支持时,此功能允许服务器将身份验证 cookie 或不记名 token 等敏感数据与只有原始客户端(即浏览器)知道的 secret 值绑定(bind)。

在 ASP.NET Core 中,此功能将在加密级别实现:浏览器传输的 secret 将用于派生数据保护用于保护和取消保护身份验证 cookie 的加密/验证 key ,这样就不会人们将能够使用被盗的 cookie,而无需发送相应的 token 。

关于cookies - ASP.NET Core 中的数据保护 API 是否可以防止重放攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623107/

相关文章:

javascript - 使用 JavaScript 设置 cookie 和获取 cookie

c# - 网络核心 : Generic Repository Primary Id Key Performance in Entity Framework

javascript - 在 nowjs 中运行不同的实例

javascript - Cookie 值中的 native JavaScript 日期格式?

http - cookie 是如何物理存储的?

c# - 什么是 ProfileService/ProfileService 何时执行?

asp.net-core - .NET Core - nwebsec - csp - 多个网址?

ASP.NET 核心 2 : Model bound complex types must not be abstract or value types and must have a parameterless constructor

asp.net - 什么是 Kestrel(与 IIS/Express)

php - 如何检查用户是否登录