2017-03-20 34 views
0

在我们的应用程序中,我们基于用户角色限制了路线(导航)。是否有必要实施Angular Guard以提供/限制对路线的访问?实施Angular Guard的重要性

它是否以某种方式提供额外的安全性,而不是基于来自JavaScript/HTML/plain Angular的用户角色来限制访问(即通过显示和隐藏链接以及显示/隐藏数据)?

+1

他们只是一个方便的方法来做到这一点。使用它们没有额外的安全性。无论如何,安全性必须在服务器上执行。 –

回答

4

角卫兵只是一个路由问题。它们是防止路由器导航到特定页面的元素,无论它们如何触发导航(通过链接,按钮或直接输入URL到地址栏)。然而,与任何JavaScript框架一样,这种“安全性”并不是真正的安全性,但更多的用户便利性。由于网络的性质,任何人都可能会干扰客户端(即浏览器)上的任何数据/代码,因此,在客户端JavaScript中实现的任何内容都不应被视为真正的安全性。您必须在您的后端系统上实施真正的安全检查。

另请注意,由于Angular Guards只是一个角度路由器的问题,因此如果您没有使用官方的Angular路由器,则它们没有任何意义。

+0

我们使用官方的Angular路由器;但不包括路线卫兵。如何通过在浏览器的地址栏中输入直接URL来阻止用户访问数据?目前的限制只能在链接和按钮上根据用户角色隐藏它们。 – user3344978

+1

这实际上是路线卫兵的目的 - 防止这种情况。如果你不想使用路线卫兵,那么你可以在你的单个组件中进行'路线卫队'检查,并在检查失败时让他们离开用户,但从字面上看,这与路线卫兵的目的相同,所以为什么不使用它提供的功能? – snorkpete