使用Paypal付款提高安全性

时间:2013-04-16 19:10:44

标签: php forms paypal

我的网站上有这个代码:

<form method="post" action="process.php">
    <input type="hidden" name="itemname" value="1" /> 
    <input type="hidden" name="itemnumber" value="2" />
    <input type="hidden" name="itemQty" value="1" />
    <input type="hidden" name="itemprice" value="17"> 
</form>

此代码向process.php发送一个POST,它会打开一个paypal类来进行付款。

一切都很好,但我遇到了很大麻烦。关键是,如果我使用FireBug编辑任何值,比如说“itemprice”,任何人都可以更改默认值,并在处理付款时将itemprice替换为任何其他数量。

我该如何解决这个问题?有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:0)

加密是阻止这种情况的唯一方法,你无法做到客户端。您可以尝试添加一些验证服务器端或使用_SESSION,但这些是您唯一的选择。

答案 1 :(得分:0)

您可以使用PayPal即时付款通知系统(IPN)。您提供网站上可以处理付款的脚本的URL。当您登录PayPal帐户时,它就在某处。

每次付款时,PayPal都会向您的IPN脚本发送一份请求,其中包含付款的所有详细信息(项目ID,名称,价格,您想要的任何内容,然后您可以使用您的数据库在脚本中进行验证,如果价格与提供的商品ID匹配。

在我看来这很容易实现并且非常灵活。在PayPal网站上也有很好的文档记录。理解它不需要太长时间。

答案 2 :(得分:0)

您永远不应该依赖网络表单中的价格。由于该项目具有其ID,因此仅将ID和所需数量发送到process.php是完全有效的。反过来,这应该直接从源(数据库,配置...)获取价格,而不是从(可能被篡改的)Web表单数据获取。

相关问题