我们知道在ecshop后台的促销管理里面,有红包的功能。ecshop红包的功能无非就是可以直接抵消现金的作用,ecshop红包有两类型,一种是直接发送到个人帐户上去的。就是存储在ecs_user_bonus表中的,这个一旦发送到客户的帐户上去。那么意味着别人拿到了这个编码,也不能使用这个编码进行抵扣。另外一种ecshop红包就是线下发送的。当你得到这个编码,在红包的有效期内,可以使用该红包。 我们必须知道,ecshop的红包编码是有问题的。我们看flow.php if (((!empty($bonus) && $bonus['user_id', == $_SESSION['user_id',) || ($bonus['type_money', > 0 && empty($bonus['user_id',))) && $bonus['order_id', 这一句表示,就算是该编码没被使用。只要是发到个人帐户去之后。即使你登陆了,也不能通过这个编码来进行使用,所以这就是一大问题。 其次,我们看ecshop红包的编码生成机制。 $num = $db->getOne("SELECT MAX(bonus_sn) FROM ". $ecs->table('user_bonus')); $num = $num ? floor($num / 10000) : 100000; for ($i = 0] $j = 0; $i { $bonus_sn = ($num + $i) . str_pad(mt_rand(0] 9999)] 4, '0', STR_PAD_LEFT); $db->query("INSERT INTO ".$ecs->table('user_bonus')....
内容已隐藏,请关注公众号输入验证码查看
本帖支持关注公众号查看
【无套路 无套路 无套路 扫描二维码关注公众号发送【验证码】收到验证码 在上面输入点击提交查看即可显示隐藏内容】
|