最近有一个公众号发红包的需求,要求一个二维码对应一个红包,扫码领取,关于防止被刷红包的问题?
程序员文章站
2022-03-30 13:59:30
...
需求: 程序为公众号准备若干二维码, 总额*万元,要求扫码领取,每个二维码对一个红包,领取后不可重复领取,这和普通的 扫码 送红包广告不同,那种只有一个二维码,谁都可以扫和传播,发完为止
问题: 可能会存在根据 url 猜出其他红包链接的问题,既没有二维码(这里二维码应该是控制红包要发给谁不发给谁),也能领取.
已经想到的办法:
写一个加密方法,用时间戳,随机数 和 一个预定义 token(或者是code) 来加密,二维码链接后面也带上时间戳 随机数,和 token,扫码后根据参数加密和存的加密字符串对比来验证是否合法,这样也许能避免猜 url 的人领取红包
问题: 可能会存在根据 url 猜出其他红包链接的问题,既没有二维码(这里二维码应该是控制红包要发给谁不发给谁),也能领取.
已经想到的办法:
写一个加密方法,用时间戳,随机数 和 一个预定义 token(或者是code) 来加密,二维码链接后面也带上时间戳 随机数,和 token,扫码后根据参数加密和存的加密字符串对比来验证是否合法,这样也许能避免猜 url 的人领取红包
不知道各位大哥有什么好的方法吗
回复内容:
需求: 程序为公众号准备若干二维码, 总额*万元,要求扫码领取,每个二维码对一个红包,领取后不可重复领取,这和普通的 扫码 送红包广告不同,那种只有一个二维码,谁都可以扫和传播,发完为止
问题: 可能会存在根据 url 猜出其他红包链接的问题,既没有二维码(这里二维码应该是控制红包要发给谁不发给谁),也能领取.
已经想到的办法:
写一个加密方法,用时间戳,随机数 和 一个预定义 token(或者是code) 来加密,二维码链接后面也带上时间戳 随机数,和 token,扫码后根据参数加密和存的加密字符串对比来验证是否合法,这样也许能避免猜 url 的人领取红包
不知道各位大哥有什么好的方法吗
1,首先你得二维码用户如何获得?这是重点哦。你绝对需要一套机制控制用户获取二维码,这是重点!!
2,关于二维码url的唯一性这个好弄,你写套非对称加密算法,把加密后字串放在url里,每次请求过来时在用算法核对下。
3,可以加入浏览器特性判断,什么?浏览器判断??意思就是,有意攻击的人总会直接扫描你页面,扫描后并不会有浏览器还有的特性,加载页面资源,例如img,script,css...,很多了,具体怎么判断,你自己想。
4,不要相信openid,ip,手机号,没用。
5,说到这如果你上面都严谨实现,基本可以杜绝80%刷客。
6,微信本身就有套防刷机制,你又可以放心一下下了。
7,更绝点还有,还是流条活路。
8,...