angular 4 auth guards 是服务器端还是客户端?如果它是客户端,它会被黑客入侵吗?

Is angular 4 auth guards server sided or client sided? If it is client sided can it be hacked?

我目前正在 angular 4 项目上工作。我熟悉 angular 身份验证守卫。我的问题是,因为 angular 4 是一个客户端框架,我们不能通过检查浏览器 window 来破解 auth-guard 来访问页面,因为 typescript 被转译为 javascript 或者是任何机会支持 auth-guard 服务器。

"Never trust the client" - 有人纠正我,但是 Angular 只是客户端。 Guards 在这里帮助您实施安全措施,主要是在 API 情况下使用 JSON Web Token。

您应该始终在服务器端设置安全措施。这种情况也不例外。

如果您不在服务器端进行检查,任何人都可以执行 http 请求并获得 200(成功)。

Guard 是您组织 UI 逻辑的便捷方式:show/hide 某些部分(除其他外,可能基于从服务器获得的用户权限)。此外,他们可以预加载某些组件工作所需的数据。

说到安全,守卫当然可以很容易地被覆盖。出于这个原因,正如有人已经提到的,'never trust the client' 和您的服务器应该根据 cookie、令牌或您使用的任何 authentication/authorization 机制实施实际的访问策略和权限检查。

客户端。

视情况而定。该框架 (angular) 具有加密器、代码压缩器和其他验证器,这让黑客难以攻击,但它仍然不完全安全。

有些人将验证变量放在 localStorage 中,这很糟糕。其他人,将全局变量放在一些服务文件中。这也很不安全。

最好的方法是创建一个服务来在后端验证。