PayPal 智能结账按钮是否容易受到攻击?
Are PayPal Smart Checkout Buttons vulnerable?
我正在制作一个电子商务网站,该网站应允许使用 Smart Checkout Buttons 进行 Paypal 付款。
我担心每个人都可以卷曲我的网站,获取原始 HTML+js 页面并编辑购买单位值。一旦他们完成了,他们就可以 运行 网页,将执行 js 代码,使用假值呈现按钮,并且他们可以伪造付款(用更少的钱)。
真的吗?是否有任何解决方案仍在使用智能按钮(没有 REST API)?
我无法手动创建按钮,因为会有很多不同用户出售的商品。
paypal.Buttons({
// Set up the transaction
createOrder: function(data, actions) {
var o = actions.order.create({
purchase_units: [{
amount: {
value: '30.99' //Can users change this ?
},
payee: {
email_address: 'sb-qloys3515897@business.example.com'//email of the sellers
}
}]
})
return o;
},
// Finalize the transaction
onApprove: function(data, actions) {
console.log(details);
return actions.order.capture().then(function(details) {
// Show a success message to the buyer
//alert('Transaction completed by ' + details.payer.name.given_name + '!');
alert(details);
});
}
}).render('#paypal-button-container');
如果你只使用 client-side 代码,那么是的,任何人都可以直接在他们的浏览器中编辑该客户端代码,并向你支付他们想要的任何金额,从 0.01 美元到数万美元不等。
如果您担心这种情况,那么仅 client-side 的集成对您来说显然太简单了,您应该使用您的服务器实现一个来执行您想要的验证。
在您的服务器上创建两条路线,一条用于 'Set Up Transaction',一条用于 'Capture Transaction',documented here.
然后让您的 PayPal 按钮调用这两个路由;这是最好的演示代码:https://developer.paypal.com/demo/checkout/#/pattern/server
我正在制作一个电子商务网站,该网站应允许使用 Smart Checkout Buttons 进行 Paypal 付款。 我担心每个人都可以卷曲我的网站,获取原始 HTML+js 页面并编辑购买单位值。一旦他们完成了,他们就可以 运行 网页,将执行 js 代码,使用假值呈现按钮,并且他们可以伪造付款(用更少的钱)。 真的吗?是否有任何解决方案仍在使用智能按钮(没有 REST API)?
我无法手动创建按钮,因为会有很多不同用户出售的商品。
paypal.Buttons({
// Set up the transaction
createOrder: function(data, actions) {
var o = actions.order.create({
purchase_units: [{
amount: {
value: '30.99' //Can users change this ?
},
payee: {
email_address: 'sb-qloys3515897@business.example.com'//email of the sellers
}
}]
})
return o;
},
// Finalize the transaction
onApprove: function(data, actions) {
console.log(details);
return actions.order.capture().then(function(details) {
// Show a success message to the buyer
//alert('Transaction completed by ' + details.payer.name.given_name + '!');
alert(details);
});
}
}).render('#paypal-button-container');
如果你只使用 client-side 代码,那么是的,任何人都可以直接在他们的浏览器中编辑该客户端代码,并向你支付他们想要的任何金额,从 0.01 美元到数万美元不等。
如果您担心这种情况,那么仅 client-side 的集成对您来说显然太简单了,您应该使用您的服务器实现一个来执行您想要的验证。
在您的服务器上创建两条路线,一条用于 'Set Up Transaction',一条用于 'Capture Transaction',documented here.
然后让您的 PayPal 按钮调用这两个路由;这是最好的演示代码:https://developer.paypal.com/demo/checkout/#/pattern/server