Angular 最佳实践:仅限HttpCookies和RoleGuards

Angular 最佳实践:仅限HttpCookies和RoleGuards,angular,security,cookies,jwt,httponly,Angular,Security,Cookies,Jwt,Httponly,我想提高我的web应用程序的安全性,并开始为Angular>=10寻找实际的安全概念 所以我选择了HTTPOnly饼干,这似乎是最先进的。从现在起,我只使用“标准”JWT令牌,并从JWT中提取道具,例如iat、exp和我的数据,并在此基础上构建相关防护 但是,如果我的理解是正确的,那么cookie就不能在客户端访问 所以我想问你的问题是: 如何在客户端建立基于角色的防护,而不访问cookie,也不重复通过请求头发送jwt令牌的工作 非常感谢您的评论! 顺致敬意, 拉吉塔加 更新:关于Cooki

我想提高我的web应用程序的安全性,并开始为Angular>=10寻找实际的安全概念

所以我选择了HTTPOnly饼干,这似乎是最先进的。从现在起,我只使用“标准”JWT令牌,并从JWT中提取道具,例如iat、exp和我的数据,并在此基础上构建相关防护

但是,如果我的理解是正确的,那么cookie就不能在客户端访问

所以我想问你的问题是:

如何在客户端建立基于角色的防护,而不访问cookie,也不重复通过请求头发送jwt令牌的工作

非常感谢您的评论! 顺致敬意, 拉吉塔加


更新:关于Cookie和jwt的相关但不完全相同的讨论正在这里进行:


但我仍然缺少一个“最佳实践”

一般来说,您不能忽略后端。应该在另一端实施一些访问规则,以便只有授权用户才具有所需的访问权限。
问题是,任何用户都可以轻松更新本地存储或redux状态,因此客户端将受到损害。

我完全同意你的看法,而且我的后端已经有RouteGuard。但是想象一下,在jwt中,基于角色,前端具有不同的角色和视图。但是如果不访问这个jwt,我只能返回用户对象并根据其中包含的数据执行操作,或者返回jwt。你认为哪种方式更好?谢谢你,祝你好运Ragitagha@ragitagha我考虑了一会儿,我认为最好的办法是在服务器上使用Angular Universal或dynamic Bundle/Module。这听起来有点过分,但它能完成任务(它可以自动化等等,但可能有点复杂)。后端上的简单令牌验证将执行相同的工作,并且不允许授权用户使用CRUD。jup,我同意,有趣的是,这里正在运行一个不完全相同但相关的讨论:。谢谢!