条纹令牌 - 为什么数字金额不包含在令牌

时间:2015-07-17 15:01:40

标签: stripe-payments

我最近一直在玩条纹,而且我完全明白该令牌会从服务器隐藏客户信用卡详细信息。这个tutorial表明服务器不应该依赖于数据量,因为它可以被客户端更改

Don’t Rely on the Form’s Price
A frequent mistake stems from using form data to contain the price of 
the product being purchased, possibly via a hidden input. Because a 
user can easily edit this input’s value, it’s unwise to depend on it.
Always fetch the price of the product from the server-side. Never rely
on the form to tell you. A simple database query is the preferred option.

有人可以解释为什么条带不包含数据量值作为令牌生成中的参数?服务器端代码是否有可能更改约定的价格并对客户产生过多的费用。

2 个答案:

答案 0 :(得分:2)

令牌是待处理费用的占位符,它不知道您要收取多少费用。准备好为卡充电后,api请求将与令牌一起发送到Stripe。对金额的担忧涉及依赖客户可以操纵的表格中的POST数据。

答案 1 :(得分:1)

由您自行设定充电量。例如,酒店可以授权100美元过夜,但在结账时发现您使用了迷你吧,然后收取150美元。或者自动计算的运费是关闭的,所以当你实际购买的运费减少5美元,你决定收取比你的auth少5美元。

您应该做的是计算向客户收取的金额,通过购物车保存,例如您的数据库中的功能(或服务器以某种方式)将结账表单发送给客户,然后使用先前计算的金额运行auth然后费用。

最终用户可以轻松更改表单数据。只需打开页面并右键单击(在chrome中),然后单击inspect元素。然后,您可以随意更改表单数据。因此,如果您使用它,用户可以将$ 1,000.00产品的价格设置为$ .01。

PCI世界中的标记化建议是将敏感数据保留在服务器上。否则,您将自己收集PCI数据,然后将数量与PCI数据一起发送到处理器。通过不让敏感数据触及您的系统,您可以节省大量资金并且在PCI合规性方面令人头痛。请参阅此115页文档:https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1.pdf

希望有所帮助,请发表评论,如果没有,我会尽力帮助。