酸橘子网站开启了发货邮件通知,即后台员工点击发货时会自动发送邮件到用户预留的联系邮箱中,几乎国外的网站都是这样操作的,所以酸橘子也当仁不让 的选用此种方式来通知用户。但不料没多久,不少用户反映自己明明没有点击邮件中的确认收货链接,但是进入个人中心却发现订单状态已经更改为了已经收到货的 状态了。
初分析,图中链接是由recieve.php文件生成的,链接参数ver的值泄露,招到他人恶意点击,于是改了默认的算法,结果发现无效果,仍然测
试中,订单会自动确认收货。再次查找ecshop内能改变订单状态为确认收货的文件,最后确认只有recieve.php这一个文件涉及到确认收货的环
节。上服务器查看访问日志,确实是正常访问了带新算法值的正确参数,这就奇了怪了,不像是被人恶意为之。
再看一下访问地址,好像有点端倪,都是广东深圳的,难道还是某人恶意事件?
正在犹豫不决时,同事sky提醒到,该不会是QQ邮件防垃圾系统点的吧。这里说明一下,公司用的是QQ企业邮箱。尼妹的,看IP,深圳,100%应该是了。
由于Ecshop傻蛋的recieve设计是用户点了链接直接就改变订单状态到确认收货,而QQ邮件spam系统会自动去点邮件里的链接是不是垃圾或者广告地址,所以,用户就蛋疼了,全被点成确认收货了,只能改recieve了。
将之前的确认收货页面改成如下格式:
//确认页面 $act = !empty($_REQUEST['act']) ? rawurldecode(trim($_REQUEST['ver'])) : 'confirm'; // 验证码 if($act == 'confirm') { $msg = $order['order_sn']."确认收货?<button onclick=\"location.href='receive.php?act=receive&id=".$order_id."&con=".rawurlencode($consignee)."&ver=".$ver."';\">确定</a>"; } //收货 else { /* 修改订单发货状态为“确认收货” */ ...... }
加一个确认的页面,这样SPAM点到链接后就不会触发订单状态更改的事件了,总算尼妹的解决问题了,Ecshop某些方面的设计真是秀下限啊。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。