羊了个羊只要发请求就可以通关,如何在设计层面避免这种情况

2022-09-23 09:48:14 +08:00
 FstarKing

羊了个羊之前只要抓包拿到 token ,然后向他的服务器发一个 get 请求,就算通关了

所以好多人刷了 99999+次

如何在设计层面去防止这样的情况

7971 次点击
所在节点    问与答
65 条回复
xuanbg
2022-09-23 13:28:51 +08:00
牌的花色根本就是随机的,不说每种花色的数量不是 3 的整数倍,连牌的总数都不是 3 的整数倍好不好。。。这个不是游戏,玩的是人心,赚的是广告。so……你爱刷就刷呗,有什么打紧?反正也不耽误我赚钱。说不得我赚的更多了呢。。。又何必和自己过不去,和钱过不去呢。
jifengg
2022-09-23 14:40:08 +08:00
开脑洞:

开局前,请求后台,返回 {"can_pass":true , "pass_token":"xxx"},如果 can_pass=false ,前端生成无法通关的牌,反之生成能通关的(但是玩家不一定能通关)。
通关用 pass_token 提交数据,后台根据这个唯一且一次性的 token ,判断是否作弊。
这样玩游戏变成可有可无的手段,能不能通关完全就是你服务器控制的,所有防作弊手段在服务端判断。
bk201
2022-09-23 14:51:34 +08:00
参考其他游戏的防作弊措施,只能说很难,只能起一个监控线程去监视。即使是重放判断也不能解决防作弊吧,只要有现成的请求模版就 pass 了。
zxfeng
2022-09-23 15:13:14 +08:00
@GeruzoniAnsasu 啥就帧同步了啊,真就是听说个名词就到处用。人家问的如何设计或者从技术角度避免玩家对游戏结果作弊。
muchengxue
2022-09-23 15:28:42 +08:00
@marcong95 666 ,这个好,不看两次广告成绩不作数
sugars
2022-09-23 15:33:51 +08:00
这是之前的刷法吧,现在没用了
dtgxx
2022-09-23 15:50:56 +08:00
@Xyg12133617 #1 你太逗了,哈哈哈哈哈
zjuster
2022-09-23 16:12:59 +08:00
没有必要。在玩这个游戏的人群里,100 个人里面也没有 1 个人有这样的能力来实现,且不放弃其他 99 个人按照预期玩游戏。

技术上的解决方案,不如游玩流程上来屏蔽(减少奖励等方式)。

换句话说就是优先级最低,毕竟赚的不是内购道具通关的钱。

所以 2L 给的是就上的答案,3L 给的就是实际上的解决方案。

学习了。
mxT52CRuqR6o5
2022-09-23 16:20:01 +08:00
@FstarKing #2 的方案代价也不大啊,就好像你做斗地主游戏得验证玩家的出牌是否合法一样,虽然没法防止 AI 解题(这个属于策略游戏自身性质的问题,是无解的),但至少『只要发请求就可以通关』这种情况可以避免了
cedoo22
2022-09-23 16:31:40 +08:00
不从工程角度,单从技术角度来说。
打点, 不停打点。。。然后做用户操作路径扫描, 最明显的操作频率、事件先后、时间这几个点一查,直接废弃掉记录。
hhjswf
2022-09-23 17:13:53 +08:00
有没有办法让人抓不到包,我看有些 app 包很难抓
zenyangfeng
2022-09-23 17:18:05 +08:00
微信小程序有一个 wx.login 函数,可以获取用户 jscode 。服务器用 jscode 和 appid 、appsecret 换取用户 openid ,jscode 只能使用一次,可以上传数据的时候校验 jscode 判断是不是小程序发送的请求
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
zenyangfeng
2022-09-23 17:18:58 +08:00
@hhjswf ios 抓包很简单
dongtingyue
2022-09-23 17:40:51 +08:00
通一关传后台记录下
加强版:每个操作都传后端验证,通一关的时候检测下操作是否异常。但是这样服务器压力会变大
brust
2022-09-23 18:45:55 +08:00
@ICB #6

可以我刷了几百次

原理很简单
1.抓包找到
https://cat-match.easygame2021.com/sheep/v1/game/map_info_ex?matchType=3
返回的参数 用抓包工具修改下 把第二关的地图改成和第一关一样

2.然后通关 可以找到这个通关接口
复制这个接口 可以批量刷多次

更新过后好像验证了时间戳 但是没有幂等
GeruzoniAnsasu
2022-09-23 19:04:54 +08:00
@zxfeng 很难理解吗? 解决方案是把操作运算放到服务端,那是不是还是帧同步 /状态同步?


OP 这个问题本来就问的很空泛,没人知道他想问的是

微信小程序有没有内置方案
还是游戏如何反作弊
还是接口如何鉴权
还是不清楚服务器运算的基础设计

那能怎么办呢,不如先多看看概念让他自己想想有什么方法做到
20150517
2022-09-23 19:11:16 +08:00
我就想问为啥 SSL 加密的 api 通讯会被破解了?程序被用中间人证书了?
20150517
2022-09-23 19:12:21 +08:00
@zenyangfeng 如果抓包简单,为什么还有手机 farm 的存在,不就是因为分析不了包,只能靠模拟吗
ZzFoo
2022-09-23 19:38:47 +08:00
客户端和服务端约定好加密方式和 token ,客户端把 userId + 时间戳 + 一个随机数 加密算出一个 signature ,服务端校验就行了
0o0O0o0O0o
2022-09-23 19:44:42 +08:00
不需要管,异常数据清空封号,邀请五个人可以解封,用户造假门槛通过微信平台大幅度提高,你不需要操心,榨取开挂者的剩余价值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882304

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX