注册
登录
提问时间:2016/11/13 9:21:48
比如简单场景:

现在有个邀请分享页面,分享地址:http://www.a.com/invite?uid=123
分享平台:QQ,微信,等
页面:一个输入框输入手机号,【参加邀请】按钮,点击后ajax请求
ajax请求接口:http://www.a.com/ajax/invite?uid=123&phone=11111111111
这样就算邀请成功,等手机用户进来注册,邀请者123就可以获得奖励。

问题:我们要如何防止用户模拟ajax请求,批量的添加邀请手机号来获取奖励?

前提:不加验证码功能

已知方案:
1,请求IP限制,超量请求限制,(问题:无法限制代理IP)
2,ajax接口新增验证参数sign=md5(uid&phone&xxx),(问题:这个sign只能js去加密,依然无法防止用户在浏览器上调用脚本来批量ajax请求)
3,请求页面服务端生成用户对应的校验串(一个用户分配一个检验串,重新刷新覆盖),cookie,或者hide 标签绑定检验串,ajax接口请求参数带上验证串,服务端校验,使用过进行删除,(问题,获取密串,然后再发ajax请求,让费服务器资源)
4,请求头属性验证如:Referer 判断来源是不是当前页面,或者其他属性验证
ajax请求的时候修改头属性值来做校验(问题,通过抓包工具,分析可以完全模拟请求头信息)


除了上面,还有什么其他的方案,大家一起分享讨论吧,坐等大神出现。。。。
1楼(未知网友)


no body
2楼(未知网友)

题主自己想到的一些不加验证码严重的方式只是增加了一点破解难度,并不能有效得做人机区分。

题主大概可以看看这个。。。与恼人的验证码说拜拜,Google用一次点击区分人与机器
立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品