javascript - 在PHPJavaScriptJQuery(PayPal)中防止表单操作

javascript - 在PHPJavaScriptJQuery(PayPal)中防止表单操作,第1张

我有一个表单,用户可以使用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-Request将检查我们的数据库,然后授予折扣价值。

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

阻止此表单操作并接收正确数据的最佳方法是什么?我认为这有点困难,因为有太多的价值要改变。

最佳答案:

1 个答案:

答案 0 :(得分:1)

数据伪造/操纵

有很多恶意的方法可以将操纵或伪造的数据发送到Web服务器 - cURL,Http Client(OSX app)只是为了命名我在调试时经常使用的两个。无论您想到什么Javascript,确定的攻击者都会将错误数据发送到HTTP服务器。

在盒子外面思考

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

Javascript非常适合用户界面并帮助用户,但在保护您的服务免受故意的错误/错误/格式错误的数据时,您必须在服务器上执行此操作。

你的特殊问题

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

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

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复