Anti-Cheat 反作弊
什么是UUID、UDID
什么是UUID?
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。百度链接
UDID类似(Unique Device Identifier)
UUID用途?
在实际应用中也就是表示唯一用户。你是谁?类似身份证号。
如果是在微信中我们可以使用OpenID,微信对于同一个公众号/服务号会生成一个和微信号相关的一个ID,这个ID我们可以认为是真实的。在App端,我们可以通过Mac地址生成一个唯一表示,又可以称之为UDID。但是在PC端或者M端,无法通过设备或者Mac地址去唯一标志一个设备。任何生成UUID的算法都是有可能出现重复的,只是取决于生成精度出现概率的问题。
关于作弊
几年前研究过美团的App端反作弊技术,在App端会取用户的手机屏幕亮度、经纬度、音量大小、Mac地址、IP、IMEI、路由等,甚至写入文件,但是这些的话,都是Fake的。最简单的方法就是初始化你的Iphone,就可以达到破解技术。但是现在貌似不行了,很久没有研究过移动端了,不知道是用了什么奇技淫巧。
PC或者H5的活动,而且是针对于未登录的用户,服务器是无法知道你是否在作弊,因为可以通过伪造Cookie/无痕模式来伪造UUID,所以在PC和H5的活动是可以撸的。所以我能想到的解决方法就是强行在用户在微信或者App端参加活动/抽奖,虽然这个方式很不友好,不过现在貌似用原生浏览器的人不多了吧。
登录用户的话,其实是可以通过账号历史行为分析,判断是否为羊毛党用户。JD和淘宝就有类似的风控机制,类似蚁盾等,通过你的行为给你进行打分,判断你是否是神号。
秒杀
淘宝、京东等电商平台都会有很多秒杀活动,这里我推荐用淘宝进行秒杀,淘宝的话如果你的号不是黑号的只是比速度,而JD根本不是比速度,而是看一个人品吧。
这里我要喷一下大 、乐一类的门票类销售网站,如果你只是一个普通用户,你能抢到票的概率只有10%,大黄牛们可以DDOS服务器,这种呼风唤雨的感觉真好,没有什么技术含量。