首页 > 解决方案 > 黑客可以影响国家内部的信息吗?

问题描述

在我的反应应用程序中,我在后端计算订单的价格,然后将其传输到状态。但最后,贝宝订单金额通过状态传递。这意味着,如果黑客能够找到将状态更改为“1 美元”的方法,他们就能以更便宜的价格买到这些物品。

这只是我计算状态内的东西的一个案例,我想知道黑客改变状态的场景是否可能。

我在状态方面做敏感事情的另一个案例:当用户尝试重置密码并且他们的 ip 没有因为太多尝试而被列入黑名单时,我将他们转移到一个页面,他们需要输入他们收到的手机密码. 如果他们输入无效的 pin,我会增加“failedTries”状态,如果他们失败了 3 次,则不会接受他们的提交。这是完成的,而不是一直到 db 并存储他们失败的 pin 码。如果黑客将状态更改为 0,他们可以简单地暴力破解只有 6 位数长的电话密码。

标签: reactjssecuritystate

解决方案


我认为您应该将 failedTries 保存在数据库中而不是 UI 部分中,作为计算价格。

您应该从服务器获取受保护的内容,并且该服务器应该仅在用户发送有效令牌时交付内容。

这样,是的,任何人都可以在客户端中拨动开关,但这仅显示 UI 组件,没有任何数据。

这是创建单页应用程序时的常用方法。只要您从一开始就没有在您的客户端中拥有机密或敏感数据,它们就与您提供数据的服务器/API 一样安全。


推荐阅读