当我的角度应用程序中已经存在身份验证时,是不是需要在 Web API 中进行身份验证

Posted

技术标签:

【中文标题】当我的角度应用程序中已经存在身份验证时,是不是需要在 Web API 中进行身份验证【英文标题】:Is authentication in web API necessary when there is already authentication in my angular app当我的角度应用程序中已经存在身份验证时,是否需要在 Web API 中进行身份验证 【发布时间】:2019-07-04 07:53:15 【问题描述】:

我正在构建一个 Angular 应用程序。我正在检查用户的角色,然后在他登录后进行身份验证。我正在使用角度的 Web API。 Web API 调用是否也需要针对每个用户进行身份验证,还是仅针对该 url 启用 CORS?

【问题讨论】:

您不仅需要向后端添加身份验证,还需要确保基于该身份验证授权所有请求。否则你很容易受到cwe.mitre.org/data/definitions/639.html 和其他人的攻击。 【参考方案1】:

是的,有必要,如果您有其他人无法访问的敏感用户数据,仅启用 CORS 是不够的

有一些工具可以让您编辑您的请求并伪造来源。因此,如果您在 API 调用中没有身份验证方法,则外部人员可以通过伪造来源访问您的 API,而无需登录。更多关于这篇文章的信息:https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646

引用其他帖子here:

请记住:CORS 不是安全性。不要依赖 CORS 来保护您的 地点。如果您提供受保护的数据,请使用 cookie 或 OAuth 令牌 或 Origin 标头以外的其他内容来保护该数据。这 CORS 中的 Access-Control-Allow-Origin 标头仅指示哪些来源 应该允许进行跨域请求。不要依赖它 还有什么。

也就是说,如果您必须在应用程序和服务器之间交换数据,您必须在每次发生这种情况时以安全的方式对您的用户进行身份验证,在登录后,无需存储密码。为此,您可以使用 Sessions 或 JWT(关于 JWT 的一个很好的指南如下:http://jasonwatmore.com/post/2018/05/23/angular-6-jwt-authentication-example-tutorial)

【讨论】:

感谢您提供详细信息。我赞成答案,但作为堆栈溢出的新手,声誉点较少。 这是一个很好的问题,我过去也这样问过自己。现在的挑战是以安全的方式实施身份验证方法,这对于 SPA 来说可能很棘手。

以上是关于当我的角度应用程序中已经存在身份验证时,是不是需要在 Web API 中进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用弹簧安全性和角度进行身份验证

将后端身份验证令牌附加到响应 URL 时是不是存在安全问题?

角度摘要身份验证

使用 Passport 进行社交身份验证登录后如何重定向到个人资料页面? (角度,快递,护照,jwt)

如何在 vue 上处理 Firebase 身份验证

在角度service.ts中使用谷歌的api.js