angularjs - web api身份验证后将 token 存储在浏览器本地存储中是否安全

标签 angularjs asp.net-web-api2 access-token

我正在使用 Asp.net Web API 2 作为后端构建 angular js 1.X 应用程序。在 Web API 2 中,我可以通过在 token 端点 (ApplicationOAuthProvider) 上发布我的凭据来轻松获取 token 。
现在因为 angular JS 是客户端,所以我需要在客户端有一个地方来保存这个 token ,以便我可以在所有后续 HTTP 调用中发送这个 token 来验证客户端。
为此,我已将我的 token 存储在浏览器的本地存储中。但我不认为将 token 存储在此处(客户端)是否安全。
因为任何有权访问我的系统的人都可以轻松获取 token 并在他的机器上使用它来登录系统。
如果有人有建议,请指导我。谢谢

最佳答案

这是 Web 应用程序中身份验证的基本挑战之一。简短的回答是,“它已经足够好了。”

更长的答案是您应该验证:

  • token 足够长以防止暴力破解
  • token 足够随机以防止猜测
  • 通信始终通过 TLS 以防止拦截/嗅探

  • 要获得全面的最佳实践,您应该花一些时间访问 OWASP地点。

    关于angularjs - web api身份验证后将 token 存储在浏览器本地存储中是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039219/

    相关文章:

    c# - Web API 2 Owin 刷新 token 不起作用并在其到期时间之前返回 invalid_grant

    c# - Web API HttpDelete - 如何调用删除 API 方法并在 [FromBody] 中发送模型

    c# - OwinStartup 停止使用 IIS 启动(但仍在使用 IIS Express)

    oauth - OAuth 2.0 访问 token 可以是 JWT 吗?

    facebook - Facebook 如何将访问 token 与消费应用程序相匹配

    javascript - AngularJS:注入(inject) $timeout 在指令中不可用

    asp.net-mvc - angularjs 使用 asp.net mvc 进行端到端测试

    angularjs - 为什么我会收到多个针对单个项目的电话?

    javascript - 使用 Angular 如何不反对代码分离?

    javascript - 我应该为每个请求从 sessionStorage 获取访问 token 吗?