gpt4 book ai didi

javascript - 防止 PHP/JavaScript/JQuery 中的表单操作 (PayPal)

转载 作者:行者123 更新时间:2023-12-03 10:10:36 26 4
gpt4 key购买 nike

我有一个表单,用户可以使用 PayPal 或银行转账作为付款方式购买积分。

如果用户选择“PayPal”作为选项,表单数据将使用 JQuery/JS 发送到 PayPal:

$(':radio').change(function () {
var $this = $(this).val();
if ($this === 'pp') {
$('#form').attr('action','https://www.paypal.com/cgi-bin/webscr');
}
else
{
$('#form').attr('action','');
}
});

用户还可以选择他想要支付的金额,这也选择了他将从中获得多少积分。此外,他还可以添加优惠券代码。 Ajax 请求将检查我们的数据库,如果这是有效的优惠券并授予折扣值。

所有信息都存储在隐藏的输入字段中(价格是多少、积分多少、折扣多少(如果有)、用户 ID 等)。现在,我想确保用户不会使用开发人员工具或类似的东西操纵这些值来减少费用,使用另一个用户 ID 等等。

防止这种表单操纵并接收正确数据的最佳方法是什么?我认为这有点困难,因为有很多值(value)观需要改变。

最佳答案

数据伪造/操纵

有许多邪恶的方法可以将被操纵或伪造的数据发送到 Web 服务器 - cURL、Http 客户端(OSX 应用程序),仅举两个我在调试时经常使用的方法。无论您想出什么 Javascript,坚定的攻击者都会向 HTTP 服务器发送错误数据。

跳出框框思考

出于安全需求,是时候打破使用网络浏览器的思维模式了,因为它是一个网站。如前所述,有多种方法可以将数据发送到 HTTP 服务器。

Javascript 有利于 UI 并帮助用户,但是当涉及到保护您的服务免受故意错误/错误/格式错误的数据影响时,您必须在服务器上执行此操作。

您的具体问题

您可能需要重新考虑使用隐藏表单字段。一种方法是使用 session 来跟踪此信息。如果这是必须以表格形式发送给 PayPal 的信息,有一种方法可以 embed the PayPal form使用加密数据。

如果您不想这样做,安全点就会转移到订单处理代码 - 在考虑交易是否完整且有效之前查看交易详细信息(货币金额等)。

关于javascript - 防止 PHP/JavaScript/JQuery 中的表单操作 (PayPal),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com