【问题标题】:Role/Account checking with navigation guards or on each API request使用导航守卫或对每个 API 请求进行角色/帐户检查
【发布时间】:2018-03-29 15:50:33
【问题描述】:

假设我正在使用广泛支持导航守卫的 vue、angular 或 react。在呈现视图之前检查他们试图在导航守卫中访问的路由的用户身份验证更好,还是继续加载视图并检查正在进行的每个 ajax 调用的身份验证是否更好。或者为了额外的预防措施同时实施两者会更好吗?目前,用户可以在路由参数中输入不同的帐户 ID,它将加载给定页面的帐户,但不会加载其数据。我觉得这很容易在某个时候发生错误,并且开始想知道是否要实现一个全局导航防护,它将在每次渲染之前进行此检查,但我也担心它会通过制作来带走单页应用程序的感觉在每个页面加载之前等待身份验证。

【问题讨论】:

  • 我会说你应该从导航守卫检查你的代码的任何权限相关部分。在导航期间检查角色是没有意义的。但在你的情况下,我想这是有道理的。但是为什么不将所有用户都放在一个特定的组件中,你可以从那里进行检查和路由......无论哪种方式都很有趣,让我们知道你决定去哪一个

标签: angular security vue.js single-page-application


【解决方案1】:

只要对所有 ajax 调用都进行了充分的许可检查,那么从技术上讲,您应该可以在没有数据的情况下为其他帐户提供 html。我目前正在开发一个项目,其中 html 和后端位于不同的服务器上,我们只是对后端服务器的调用使用身份验证。但是,对该站点的访问非常有限,因此我们不太可能让任何用户窥探。

我想说对 ajax 调用进行身份验证是必须的——只对路由进行身份验证会非常危险——所以问题就变成了你应该同时对路由和 ajax 调用进行身份验证,还是只对 ajax 调用进行身份验证。从那里我会说这只是你想要有多安全的问题。不验证路由可能会让您对窥探用户敞开大门,他们可能会试图找出存在哪些帐户和类似的事情,并且如果您不小心在身份验证中留下了漏洞,也会让门敞开一点。仅对 ajax 进行身份验证确实应该是安全的,但是如果您想特别安全,我会同时使用两者。再说一次,如果您想超级安全,您可能不应该将帐户 ID 或信息放在 url 中。

【讨论】:

  • 您在讨论中提出了一个很好的观点。至少应该在后端检查 Ajax 路由(将请求的数据与标头中包含的 Web 令牌对应的角色进行比较),并且可能还应该在让路由导航之前检查路由,因为如果出现问题,那么他们可以通过尝试 URI 中的 id 来对数据库中的内容做出有根据的假设。很好的一点。这是非常敏感的信息,所以我认为我们可能会进行导航检查、ajax 调用检查(确保存在令牌)和后端检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
相关资源
最近更新 更多