在我们的应用程序中,我们根据用户角色限制了路径(导航)。是否绝对有必要实施Angular Guards来提供/限制对路由的访问?
它是否以某种方式提供额外的安全性,而不是基于JavaScript / HTML / plain Angular中的用户角色限制访问(即通过显示和隐藏链接以及显示/隐藏数据)?
答案 0 :(得分:4)
Angular Guards完全是路由问题。它们是阻止路由器导航到特定页面的元素,无论它们如何触发导航(通过链接,按钮或将url直接输入到位置栏)。
然而,与任何javascript框架一样,这种“安全性”并不是真正的安全性,而是更多的用户便利性。由于Web的性质,任何人都可以干扰客户端(即浏览器)上的任何数据/代码,因此,客户端javascript中实现的任何内容都不应被视为真正的安全性。您必须在后端系统上实施真正的安全检查。
另请注意,由于Angular Guards仅仅是Angular Router的关注点,那么如果您没有使用Angular官方路由器,那么它们就毫无意义。
答案 1 :(得分:0)
我写了一篇文章,其中解释了有关 Guards 和 Interceptor 等的所有内容 http://agdev.tech/2021/03/18/angular-authentication-interceptors-and-guards/ 还有一个 stackblitz 可能会有所帮助。