Javascript 贝宝快捷结账。在onAuthorize函数中将数据存储在DB中是否安全?

Javascript 贝宝快捷结账。在onAuthorize函数中将数据存储在DB中是否安全?,javascript,security,paypal,payment,express-checkout,Javascript,Security,Paypal,Payment,Express Checkout,我有一个很大的安全问题,在一个网站的支付流 我有一个nodejs服务器和一个带有.js的标准html页面,该页面使用Paypal Express签出 鉴于我的webapp的性质,我的服务器必须保存到期付款的数据。 关键是,即使使用客户机-服务器体系结构进行支付,数据流也会通过客户机浏览器 问题是Paypal Express checkout使用新窗口执行付款,因此数据必须通过客户端! (也可能不是,等帖子结束) 这是我的客户端代码: paypal.Button.render({ 环境:“沙盒”

我有一个很大的安全问题,在一个网站的支付流

我有一个nodejs服务器和一个带有.js的标准html页面,该页面使用Paypal Express签出

鉴于我的webapp的性质,我的服务器必须保存到期付款的数据。 关键是,即使使用客户机-服务器体系结构进行支付,数据流也会通过客户机浏览器

问题是Paypal Express checkout使用新窗口执行付款,因此数据必须通过客户端! (也可能不是,等帖子结束)

这是我的客户端代码:

paypal.Button.render({
环境:“沙盒”,
承诺:对,
风格:{
尺寸:'中等',
颜色:“金色”,
形状:'药丸',
标签:“结帐”
},
地点:'en_US',
支付:功能(){
昵称=$(“#昵称”).val();
金额=$(“#金额”).val();
description=$(“#description”).val();
数据={
“昵称”:昵称,
“金额”:金额,
“描述”:描述
};
返回新的paypal.Promise(函数(解析、拒绝){
jQuery.post(“/newPayment”,data).done(函数(数据){
log(“HEI我得到了付款JSON=“+数据”);
parsed_data=JSON.parse(数据);
解析(解析的_数据['id']);
});
});
},
onAuthorize:函数(数据、操作){
//在这里,我应该调用我的服务器将数据插入数据库
控制台日志(“付款成功”);
return actions.payment.execute();
},
onError:功能(数据、操作){
控制台日志(“errorrrr”);
$(“#警告”).show();
}

}“#贝宝按钮”)您是对的,客户端没有任何东西是安全的。您应该让您的服务器验证支付是否成功(以及支付的金额是否正确,等等)。PayPal既有用于服务器的REST API,也有用于特定语言的SDK。

我完全可以在这里看到您的问题。没有什么能阻止黑客改变价值观。可能是一个会话令牌,这样您就知道对服务器的请求来自有效的会话?@voidstate我有一个想法,因为我认为PayPal在确认付款时会调用创建付款(旧问题中的服务器端)中的“redirectUrl”参数,我可以插入一个带有URL编码数据的URL,让PayPal直接调用我的服务器,而不是让客户端负责调用它。每当我有客户端调用服务器时,可能会有人精心设计我的请求并利用此漏洞。你觉得怎么样?@voidstate好吧,它不起作用了。。。您建议如何为该数据流实现会话令牌?