使用客户端集成将变量 Amount 传递给 Smart PayPal 按钮是不是安全?

Posted

技术标签:

【中文标题】使用客户端集成将变量 Amount 传递给 Smart PayPal 按钮是不是安全?【英文标题】:Is it secure to pass a variable Amount to a Smart PayPal Button using the client side integration?使用客户端集成将变量 Amount 传递给 Smart PayPal 按钮是否安全? 【发布时间】:2019-08-04 01:16:57 【问题描述】:

将变量 Amount 传递给 Smart PayPal 按钮脚本是否安全?

如果我们假设我们有基本金额 100 和复选框选项,如果用户选择它,它会将总金额增加 20 变为 120

var totalAmount = 100;

$('form').change(function()

  totalAmount =+ $(this).find("input").val();

)
  
  
  
  paypal.Buttons(
    createOrder: function(data, actions) 
      // Set up the transaction
      return actions.order.create(
        purchase_units: [
          amount: 
            value: totalAmount
          
        ]
      );
    
  ).render('#paypal-button-container');

它工作正常,PayPal 将其视为 120 并且一切正常,但它足够安全吗?还是有更好的做法?

非常感谢

【问题讨论】:

【参考方案1】:

既然是客户端,那就没问题了,我对paypal不是很熟悉,但我没有看到这段代码中有任何安全漏洞

【讨论】:

好的,如果有人打开浏览器检查工具并从脚本本身更改数量,会发生什么? 没有此代码,潜在的攻击者仍有机会这样做,如果这只是您的代码的一部分,请在服务器中验证该号码然后发回,您可以实时执行此操作, ajax,fetch API,axios 如果您认为我的回答正确,请标记为正确【参考方案2】:

它不安全。如果您想要一个动态按钮,则必须使用 html 表单按钮,您可以在其中自定义按钮并对其进行加密,这样任何人都无法更改金额值。讨论了here。希望这会有所帮助:)

【讨论】:

以上是关于使用客户端集成将变量 Amount 传递给 Smart PayPal 按钮是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

将环境变量传递给大型机 JVM

在 C++ 和 Oracle 数据库之间传递数据时的浮点精度问题

nodeJS + Swig模板将变量传递给javascript

如何通过 AWS AppSync 客户端将保存字符串的变量传递给 GraphQL 查询?

使用 ApolloClient 将变量传递给 GraphQL 突变似乎不起作用

如何将 tqdm.wrapattr 上传的进度传递给函数或变量?