@
g5tf87 不难,而且有现成的思路。
如果阻止直接发请求的作弊方案,可以增加日志的方式,生成一些加密信息,然后把 js 混淆 就行了,后端把加密信息离线的解密出来,判断这些信息是否都合规。如果混淆逻辑自研是很难解密出来的,如果觉得混淆能解密出来的请尝试解密一下优酷的 tfstk 、l 等加密的 cookie 。
如果有 js 环境,其实有些浏览器的 api 是很难完全模拟出来的,比如 重力感应、电量、设备的 screen 信息(包含 client offset 、screen 等)至少我知道的反作弊手段如果拿 jsdom 去模拟出来是做不到。就算模拟出来了,还有判断你这些 api 是否是 [native code]。
如果只有少部分模拟不出来 js 环境,想尝试通过动态修改 js 代码的方式设置值,还可以通过给 js 代码生成 hash 值的方式判断有没有动态修改了 js 。
总而言之,从我的反作弊经验来说这些基本上都能防范到。当然,不排除有大神把这些都能解决掉。