2

我正在使用一个插件不错的 paypal lite 按钮,在那里我对携带交易资金、商家电子邮件 ID 的隐藏字段感到不安全。通过萤火虫,我编辑了这些字段值,不幸的是我编辑的值成功地转到了贝宝。

我试过readonly了,也没有帮助。那么我该怎么做才能避免这种情况......

$f .= '<input type="hidden"   name="business" value="'.$a['email'].'" readonly/>';
        $f .= '<input type="hidden" id="customer_name" name="cmd" value="'.$a['command'].'" readonly/>';
        $f .= '<input type="hidden"  name="item_name" value="'.$a['name'].'" readonly/>';
        $f .= '<input type="hidden" id="pay_amount" name="amount" value="'.$a['amount'].'" readonly/>';

任何链接,任何想法,任何建议都将不胜感激。

谢谢

4

2 回答 2

1

这不是您必须担心的事情*。用户将始终能够编辑客户端数据。因此,一个人可以更改他们的数据,以便他们在其他地方发送付款,这与他们登录自己的帐户并在任何他们想要的任何地方发送付款相同。您必须担心的是人们能够更改其他用户的付款信息。我不是安全专家,但这就是为什么您要清除网站上显示的所有动态数据(即不要信任数据库中的数据)。您还可以通过 TLS 为页面提供服务,以防止流量被操纵(例如通过受感染的路由器)。

于 2013-10-24T13:09:09.187 回答
0

作为记录

步骤 1) 生成一个唯一的验证 ID。因此,如果信息被更改,您可以再次验证它。

$key=md5($a['email'].$a['name']...$SOMESALT);
$f .= '<input type="hidden"   name="validation" value="'.$key.'" />';

步骤2)当您验证信息时,您可以验证完整性

$validation=@$_POST['validation'];
$key=md5(@$_POST['email'].@$_POST['name']...$SOMESALT); // again
if ($key!=$validation) {
    die('nope');
}

可选:您可以通过生成随机盐并存储在会话中来强制执行安全性。

对于这种情况,MD5 是相当安全的。

于 2018-07-01T13:01:32.837 回答