如何解决计算报价,并通过JS更改产品价格有没有更安全的方法?
现在,我正在根据用户输入来计算报价,其中包括:“无线电选项1,无线电选项2,持续时间和距离。”
我正在使用JS根据用户选择的内容来更新报价,然后它会更新表单中的一个字段,该字段用作发送到条带的价格。
我如何确保它的安全性,我是否必须废弃JS,因为如果用户通过一些搜索进入我的Javascript,他们便可以找到计算并对其进行更改。
function calcQuotePrice(state,deliv_dist,chauffeur_dist){
var base_price = map[currentCarSelected]['basePrice'];
var date1 = dateConverter(jQuery('#from').val(),jQuery('#fromTime').val());
var date2 = dateConverter(jQuery('#to').val(),jQuery('#toTime').val());
var duration = dateDiffInDays(date1,date2);
var durationCost = dailyModifier(duration,base_price);
var deliveryCost = calcDeliveryCost(deliv_dist);
var totalCost = durationCost + deliveryCost;
if(state === 'pick up'){
totalCost = durationCost;
}
else if(state === 'delivered'){
totalCost = durationCost + deliveryCost;
}
else{
var chauffeurCost = calcChauffeuerCost(chauffeur_dist,base_price);
totalCost = deliveryCost + chauffeurCost;
}
jQuery('#quotePrice').find('p').html('Quote Price: £' + numberWithCommas(totalCost.toFixed(0)));
jQuery('#price-field').val(totalCost);
}
我的问题是我将如何以安全的方式执行此操作?
解决方法
任何前端代码本质上都是不安全的,并且可由用户编辑。
为了使这种事情变得安全,后端通常用于在将事物发送到诸如Stripe之类的支付引擎之前计算成本并验证输入。
或者,如果您想保持简单,则可以接受有人尝试用Stripe向您支付错误金额的风险,然后您在向他们提供产品之前,只需检查他们在Stripe上支付的金额即可。
可能发生的最坏情况是什么?您是否要公开您的Stripe API密钥,以便他们可以退款?还是只是让他们给您不正确的金额,这是他们给您钱的错,这对于您有责任给他们带来什么回报成为法律问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。