首页 > 解决方案 > 比使用 routeguard 更安全地保护有角的路线?

问题描述

我必须用 Angular 8 创建一个 SPA。

在 SPA 中,我将有一个带有表单的组件,该表单只有在用户具有权限时才能看到。

为此我打算使用路由守卫,问题是守卫在客户端的浏览器中运行,这不能保证恶意用户看不到表单的组件(例如,编辑js)。

接收表单数据(权限检查等)时,RestAPI 后端会有安全性,但我需要确保没有权限的任何人都看不到表单。

有没有办法有效地阻止角度分量的可视化?

标签: javascriptnode.jsangularroutes

解决方案


不可否认,恶意代码更改无法访问您的客户端代码。

您对此无能为力,因为 SPA 代码依赖于前端,因此如果您知道变量并可以从控制台或其他方式更改函数,则您无能为力。

就访问控制或阻止 UI 元素而言,您可以拥有强大的后端,不会授权未经授权的访问。这种方式只能看到 UI,但运行该 UI 所需的数据将不可见(由于后端访问控制)。

你可以用逻辑的方式思考,

  1. 如果敏感数据不可见,那么 UI 元素可见就没有问题。
  2. 如果恶意用户可以看到某个操作按钮,因为要执行此操作,您需要后端,这将不起作用,因为恶意用户无法访问终端端点。

底线是您的带端应该非常强大以处理授权请求并将自己与未经授权的请求分开。


推荐阅读