用户可以在生产环境中访问和更改 Angular 应用程序中的组件属性吗?

Can users access and change component properties in an Angular app in production?

提问人:Leslie Bong 提问时间:11/18/2021 最后编辑:Leslie Bong 更新时间:11/18/2021 访问量:297

问:

我正在学习 Angular 和 SPA,我希望有人能为我提供一些指导并就这个特定主题对我进行教育。

对于正在开发的 Angular 应用程序,我知道我们能够选择一个组件来访问其状态/属性和方法,从而可以在全局范围内访问 ng。ng.getComponent(component)

据我所知,**ng **命名空间在生产过程中不可用。

最终用户是否可以通过其他方式访问并因此改变 Angular 应用程序在生产中的状态?

如果是这样,我们如何保护应用程序的状态?

提前谢谢你。

Angular 安全 状态 客户端

评论

0赞 Raphaël Balet 11/18/2021
嗨,Leslie Bong,您能否解释一下您想要“保护应用程序状态”的原因,因为提醒安全问题应始终在 api 端检查,而不是在前端。
0赞 Leslie Bong 11/18/2021
嗨,拉斐尔,感谢您抽出宝贵时间回复。请耐心等待我,因为我是自学成才的。我问的原因是因为我在考虑某些场景的实现。我只是想知道作为电子商务中的一个例子 - 例如,用户从前端更改产品价格,然后尝试将这些产品添加到购物车,然后向后端发送带有错误值的“购买”请求。这完全可能发生,对吧?
0赞 Leslie Bong 11/18/2021
@RaphaëlBalet,但是是的,根据你所说的我同意,安全性应该在 API 端和后端处理。这是否意味着,对于电子商务平台来说,后端还需要根据前端请求的内容查询最新数据,并在响应客户之前执行自己的逻辑以得出最终价格?在这种情况下,我在尝试保护前端应用程序状态时是否想得太远了?再次感谢你。

答:

1赞 Raphaël Balet 11/18/2021 #1

在生产模式下编译组件后,无法通过浏览器更改组件状态。

额外

为了更进一步,并对主要评论做出回应

您可以尝试以您想要的方式保护前端,事实是,这并不重要。

黑客不会更改 ui,而是更改他发送到服务器的请求。在电子商务中的某个时候,您必须向服务器发送请求,然后由您的 API 处理这些信息。

唯一应该传输的数据应该是用户的令牌和用户想要购买的物品的IDapi 应该计算其余的,所以基本上,你必须做 2 次计算,1。在前面(我会请求 API 向我发送总金额),在后端为 1。