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 获胜'保护你免受那个。
出于安全原因,我有一个客户坚持不公开应用程序管理部分的设计。
他认为恶意的有经验的用户可以从设计中猜到东西。
Angular 守卫会阻止用户(服务器端)泄露管理部分吗?
我可以想到 2 个选项:
您将管理端放在另一个 Angular 应用程序上,并且您不允许从公司外部下载该应用程序(例如将其放在内部 VPC 上,在内部域名等)。
如果您拥有自己的 web-server,您可以将 lazy-loading 用于管理模块,并在 web-server 本身上添加一个安全层,这样它就不会不允许下载管理模块(lazy-loaded 模块具有可预测的名称,即使它们末尾有哈希)。
第一个选项是我的首选,因为:
- 然后您可以通过 CDN 分发您的应用程序,将其托管在 S3 等中,而无需 web-server 仅仅因为管理模块。
- 对我来说,以这种方式配置错误是最困难的,因为它不依赖于文件名模式。
- 如果您将 lazy-loaded 模块错误地导入到另一个模块中,它将不再是 lazy-loaded 并且它将与 main.js 一起下载,因此 web-server 获胜'保护你免受那个。