【发布时间】:2018-06-20 04:28:44
【问题描述】:
我目前正在使用 Braintree 服务器包 (Node.js),并且正在努力实现订阅。
作为中间步骤,我正在管理每个客户的付款方式列表,该列表位于客户对象中:customer.paymentMethods。
我想确保将这个列表直接传递给客户端是可以的。本质上,我想列出所有当前的付款方式,并创建一种添加新方式/删除现有方式的方法。选择付款方式后,我可以将payment_method_token 传递给服务器以使用此付款方式执行特定操作。
由于我只是在用户有适当的会话时才将支付令牌传递给用户,因此以这种方式传递令牌似乎是安全的,但我想肯定我这样做是正确的。
有人可以验证这种方法是否可行吗?
【问题讨论】:
-
所以基本上如果我是一个“坏用户”,我可以在客户端添加付款方式吗?是否有任何数据未被处理的检查服务器端?不要觉得我对你的情况了解得不够多,无法回答。永远不要相信用户。继续偏执。刷新阅读 OWASP 网站上的一些内容。
-
@ficusr 感谢您的回复。我主要是尝试将用户现有的支付信息中继到客户端,以便可以选择一个来创建订阅。我创建订阅所需的只是支付令牌,因此将其驻留在客户端上是否可行似乎值得怀疑。
-
如果不良用户将
fake token发送回服务器,它将失败,因为您的网络服务器会将令牌传递给braintree 服务器。此外,我们可以随时检查令牌在服务器端是否有效。 OP方法是正确的。