Angular guard 可以阻止管理面板服务器端吗?

Could Angular guard prevent admin panel server side?

出于安全原因,我有一个客户坚持不公开应用程序管理部分的设计。

他认为恶意的有经验的用户可以从设计中猜到东西。

Angular 守卫会阻止用户(服务器端)泄露管理部分吗?

我可以想到 2 个选项:

  • 您将管理端放在另一个 Angular 应用程序上,并且您不允许从公司外部下载该应用程序(例如将其放在内部 VPC 上,在内部域名等)。

  • 如果您拥有自己的 web-server,您可以将 lazy-loading 用于管理模块,并在 web-server 本身上添加一个安全层,这样它就不会不允许下载管理模块(lazy-loaded 模块具有可预测的名称,即使它们末尾有哈希)。

第一个选项是我的首选,因为:

  • 然后您可以通过 CDN 分发您的应用程序,将其托管在 S3 等中,而无需 web-server 仅仅因为管理模块。
  • 对我来说,以这种方式配置错误是最困难的,因为它不依赖于文件名模式。
  • 如果您将 lazy-loaded 模块错误地导入到另一个模块中,它将不再是 lazy-loaded 并且它将与 main.js 一起下载,因此 web-server 获胜'保护你免受那个。