我有一个表格,用户可以购买信用与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等等。
防止此表单操作并接收正确数据的最佳方法是什么?我想这有点困难,因为有太多的价值观需要改变。
发布于 2015-05-08 17:50:12
数据伪造/操作
有许多邪恶的方式发送操纵或伪造的数据到一个web服务器- cURL,Http客户端(OSX应用),只是举两个我经常使用的调试。无论您想到什么Javascript,坚定的攻击者都会向HTTP服务器发送坏数据。
跳出框框思考
出于安全需要,是时候打破使用web浏览器的思维模式了,因为它是一个网站。如前所述,有许多方法可以将数据发送到HTTP服务器。
Javascript对UI和帮助用户都有好处,但是当涉及到保护您的服务不被故意损坏/错误/格式错误的数据时,您必须在服务器上使用。
你的特殊问题
您可能需要重新考虑使用隐藏表单字段。一种方法是使用会话来跟踪这些信息。如果这是必须以其形式发送到PayPal的信息,则有一种使用加密数据实现嵌入PayPal表单的方法。
如果您不想这样做,那么安全性就转移到订单处理代码--在考虑事务是否完整和有效之前,查看事务的详细信息(货币金额等)。
https://stackoverflow.com/questions/30129541
复制相似问题