微信支付开发败笔一例:openid参数暴露,并使用get请求传递,直接导致红包损失

发布时间: 2019-01-31

最近朋友发来一段文字,按照其操作,轻松领取了一个随机红包,虽然只有0.79元。但是就技术角度而言,这是一个非常失败的开发案例。


内容不变张贴,大致含义如下:

1,微信内打开一个活动地址,不参与活动,直接复制页面url,然后从url的参数中提取 openid参数。

2,将刚刚提取的openid参数,拼接给另外一个url。然后微信内访问,即可收到微信服务发来的一个红包。


当这个步骤操作完成,软件开发出身的我,很明显就推测出这是一个软件设计缺陷,导致的薅羊毛行为。

首先,我们可以推断这个微信公众号的开发人员技术很一般,openid在网页url里公开暴露

其次,对于对接了微信支付的公众号,稍有不慎造成经济损失很严重。

本事件就是一例,领取微信红包的功能页,居然仅仅需要携带openid参数访问以下即可领取红包。并没有达到设计初衷“答问卷送红包”的目的。而是绕过了回答问卷过程直接获得了红包。


关于微信支付

微信支付是腾讯旗下微信平台推出的功能,具备一定条件的企业才可开通。

很多企业已经使用微信支付平台,设计出各种各样的红包玩法。通过“红包”直接换取自己想要的资源,已经是很多企业在策划设计活动中就开始使用的行为。


关于谁承担损失

本文案例中,显然微信支付一方并没有过失,经济损失是因为软件产品的设计不够严谨导致。不过好在微信支付平台方不是无底洞,通过查询微信支付平台,可以看到需要将款项提前充值到微信支付平台。然后红包从平台余额中扣除。

非常不幸的是,这种自身漏洞导致的“被薅羊毛”行为,目前尚无案例去追究薅羊毛的用户。可能也正是因为这样的原因,“羊毛党”近几年大幅增长。“羊毛党”可防不可治。


最后

友情提醒各位开发人员,安全问题不可忽视,对比思考下为什么做一个银行系统周期那么久?然而企业却往往只给出几周甚至几天的时间就要求上线一个功能甚至系统。在这种背景下,努力提高自身技术水平才是尽可能避免损失的途径。


请在下方留下您的评论.加入TG吹水群