首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于防火墙的支付/信用系统的安全和最佳实践方法是什么?

基于防火墙的支付/信用系统的安全和最佳实践方法是什么?
EN

Stack Overflow用户
提问于 2015-10-16 12:36:50
回答 1查看 252关注 0票数 1

在安全和实用性方面,我有一个关于我的Firebase设置的问题。

目标是使用户能够购买信用,并一个一个地使用这些信用。为了实现这一点,我设置了一个“用户”对象,存储用户数据(姓名、地址等),一个“事务”对象,存储所有的采购(金额,时间等),和一个“花销”对象,其中我存储了与用户消费的数据(时间,时间,等等)。

由于应用程序必须知道用户仍然可以花费多少学分,所以我在名为validCredits的用户对象中创建了一个变量,其中应该存储当前可用的学分。用户在“用户”中对自己的用户对象拥有read+write权限,在"spendcredits“中对自己的对象拥有read+write权限。只有不同的服务器对“事务”对象具有read+write权限。

所以发生的是,用户购买5个学分。服务器用+5更新他的validCredits变量,用户花费一个信用(-1),花费另一个(-1),再购买5个学分(+5)。他的新validCredits金额是8。

我不确定这是否是一个安全/最佳的设置。我担心,由于用户对自己的帐户(存储"validCredits“变量)有写权限,他可能会通过增加这个值来增加额外的学分吗?或者仅仅允许用户在这个领域使用"-1信用“操作可以防止这种情况发生吗?

我还可以想象,您可能希望将所有内容存储在“事务”对象中,并且在应用程序请求最新的有效信用数时,只需执行所有transactins的总和即可?对于这样一个有支付和信贷的系统,一般建议怎样做?

EN

回答 1

Stack Overflow用户

发布于 2015-10-17 18:00:43

以下规则可用于强制用户一次只能减少一个validCredits。我假设您有某种方法来区分服务器和用户,这就是auth.isServer所代表的。

代码语言:javascript
运行
复制
{
  "users": {
    "$uid": {
       validCredits": "auth.isServer || newData.val() === data.val() - 1"
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33170689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档