现在有这样一个需求,给店面提供一个抽奖功能的 H5 单页面,用户打开这个页面就是一个类似转盘抽奖的活动。 这个单页面很简单,进来就是抽奖,这个单页面也仅仅是一个单页面和 Java 程序服务器互通。
问题来了,由于用户不需要登录,用户点进来就开始抽,抽不中退出去再进来再抽,直到抽中为止。
想了几种方案都不足以保证安全,分别如下。
对于这种简单的场景,应该怎么来实现这个功能呢? 还是我的大方向错误了,这个流程有更正确的方式呢?
1
cmdOptionKana 2020-11-18 15:14:17 +08:00
可以凭消费的小票(或电子单号)参加抽奖,反正一次消费只能当作一个身份,想多要一个身份就要多消费,不怕被刷。
如果想让不消费的顾客也能参与,可以在领奖时要求确认电话号码,每个电话号码只有一次领奖机会,后续就算中奖也不能领奖,这也能避免被刷。结合别的防刷技术,有能力破解的人本来就少,就算现场有这样的人,他也只能为少量几个手机号码作假,影响不大。 |
2
hotsun168 2020-11-18 15:14:20 +08:00
无后端验证的方式永远不可能 100%避免用户伪造提交。所以比较安全的方式应该是验证码或微信登录。
以成本方式考虑,如果送出去的礼品价值超过发短信和构造微信后台的成本,那么最好还是做后端验证。 |
3
cmdOptionKana 2020-11-18 15:17:58 +08:00
还可以限定一台设备,专人守着让顾客排队上来抽奖,一般人也不好意思 /没时间多次排队。
|
4
BBrother 2020-11-18 15:28:27 +08:00
以前做的时候选的方案 1,因为一般用户不会清缓存,会清缓存的用户也知道自己在做什么,再说活动没那么严格
|
5
murmur 2020-11-18 15:29:37 +08:00
浏览器指纹 配合 IP 一些做风控 只能这样了 手机号这个不想 极验想必你也不会上是吧?
|
6
jimisun OP @cmdOptionKana 活动并不是在店里面的,而是主要发送给微信好友的 H5 网页,不用消费,现在我能想到的就是提供手机号再结合一定的防刷技术配置,但是这样影响了用户体验,用户在别人转发的朋友圈点开后就想简单抽个奖,现在用还要在抽奖前提供一下手机号,这样一定程度上影响了用户的积极性。所以想征求下大家有没有我忽略的更好的 IDEA
@hotsun168 现在是后端生成的抽奖页面,就是一个 H5 网页,没有对接微信登录,短信验证码都在很大程度上影响了想要的效果。用户打开就是想简单抽个奖,抽不中就算了,抽中了就要到我们店面来领东西消费。促进消费的一种活动。 |
7
linauror 2020-11-18 15:31:45 +08:00
对接一下微信获取 openid,这个过程是无感知的,仅仅获取 openid 不需要用户手动同意
|
8
jimisun OP |
9
jimisun OP @linauror 是的这个考虑过,但是还有一部分市场是不仅仅在微信,我们的门店可能将这个抽奖页面投放到各大论坛什么的。
|
10
jimisun OP @linauror 好像想要获取 openid 需要中间有公众号的交互才能获取吧 我这个可能就是一个 H5 的网页 发在朋友圈 或者微信消息之中
|
11
9151 2020-11-18 15:45:29 +08:00
不能读取网卡地址吗?
|
12
ArthurSS 2020-11-18 15:46:33 +08:00
|
13
jimisun OP @ArthurSS 非常感谢提供思路,刚才搜索了一下,非常棒,但是我 demo 会经常变动在同样设备的不同时间上,请问有稳定的 fingerprintjs 示例吗?
|
15
keepeye 2020-11-18 18:01:42 +08:00
微信网页授权不行吗
|
16
fmumu 2020-11-18 19:09:26 +08:00
微信网页授权,无感知的
|
17
jimisun OP |
19
Alekseyevich 2022-06-18 22:52:38 +08:00
浏览器指纹有了解过么,后来怎么解决的呢?
|
20
zenxds 2022-06-22 09:42:23 +08:00
fingerprintjs 早的时候用过,采集的信息稍微一变就变了,我还提 issue 了,官方解释就是这么设计的,后面就没再用了
|