在我的react应用中,我在后台计算出订单的价格,然后传到状态。但是在最后,支付宝的订单金额是通过状态传递的。也就是说,如果有黑客能想办法把状态改成 "1元",就能更便宜地拿到商品。
这只是我在状态里面计算东西的一个案例,我想知道是否有可能出现黑客改变状态的情况。
再来一个我用状态做敏感东西的案例 :当用户试图重置密码,并且他们的ip没有被列入黑名单太多次尝试,我将他们转移到一个页面,他们需要输入他们收到的pin码到他们的手机。如果他们输入无效的pin码,我就增加 "faultTries "状态,如果他们失败了3次,我就不接受他们的提交。这样做的目的是为了避免一直到数据库中去存储他们失败的pin码。如果黑客将状态改为0,他们可以简单地强行输入只有6位数长的手机pin码。
我觉得你应该把failedTries保存在数据库中,而不是在UI部分,作为计算价格。
你应该从一个服务器上获取受保护的内容,这个服务器应该只在用户发送有效的token时才提供内容。
这样一来,是的,任何人都可以在客户端打开开关,但那只显示UI组件,没有任何数据。
这是创建单页应用时的常用方法。只要你从一开始就没有秘密或敏感数据就在你的客户端中,它们就像你的服务器API提供数据一样安全。