做了一个概率类的小游戏,被人攻击了,大家有没有什么好的防范手段

3 天前
 bigbigeggs

做了一个纯拼运气的概率小游戏,https://www.gdufe888.top/wt/
然后搞了一个排行榜,但是被人找到后端接口,开始用脚本恶意请求,然后刷我的接口,导致我的服务直接重启,启动之后又挂了

我已经用了以下手段来防范,但还是有人攻击,恶意请求,大家有没有一些更好的手段

但是还是有人破解了 token 规则,然后还在一直刷我的接口,我都无语了这帮人,大家还有没有一些更好的手段

求助安全的大佬

1115 次点击
所在节点    问与答
14 条回复
hallDrawnel
3 天前
套 CF ?
dcvsiug
2 天前
刚试了一下,搜索 token 然后复制一段 js 到 claude 就破解了。要不经常变化 token 规则提高一下破解时间成本?
bigbigeggs
2 天前
@hallDrawnel cf 是什么,需要花钱去买么
hallDrawnel
2 天前
cloudflare @bigbigeggs 有免费的额度
bigbigeggs
2 天前
@dcvsiug 是的,怎么混淆,AI 还是可以很轻松识别的,经常改代码总感觉不能一劳永逸,不知道有没有更好的办法
MossFox
2 天前
我来几个方向,实践肯定都能做,只不过大部分时候的对抗是增加破解难度,做不到全防御。

需要加密或者带 token 的情况,浏览器支持 WASM 可以将一些签名逻辑放进去,WASM 部分随便用 C C++ Rust 写都行,但是问题是如果只是通过 JavaScript 把它当成黑盒调用,起不到防御的作用,除非增加计算量挑战,类似 Cloudflare 的人机验证过程,消耗客户端 CPU 资源来增加高频请求的成本 (计算量大的话避免堵住主线程最好放 Web Worker 里面执行);

现代 Web 可以用 WebRTC 来走 UDP 跟你的服务端悄悄交换一些数据,例如把凭据放进去,可以给傻瓜式的自动化脚本增加一道坎,代价就是用户如果浏览器里面禁用掉了部分特性则直接歇,以及如果用户网络环境特别特殊、UDP 被拦了的情况也是直接歇;

前端计算 token 的逻辑和整个业务逻辑混起来并上一道 JSVMP 之类的混淆。这个破解也就是体力活,增加成本但不保证全防御,而且对客户端性能有些影响,但至少还算能保证用户无感知;

玩阴的,将某些静态资源 (例如 img ,JavaScript 用 new Image 设置 src 等加载,直接 fetch 会被光速怀疑) 偷偷摸摸作为合法请求的校验前提。你可以用只有合法用户操作才会触发加载的的情况下偷偷初始化一次这个。或者就是将某些凭据数据放在图像 bitmap 或者元数据或者冗余数据里面。这个也只是猫抓老鼠,被看出来了也没办法,要配合好客户端侧 JavaScript 的混淆才能多防一会。

或者,也可以转移成本。要么上个常见云服务提供商的验证码,要么随便接入个第三方授权登录。这些可能就对用户不友好了。
sbmzhcn
2 天前
套 cloudflare ,搞定绝大部分人。完全免费。 使用 cloudflare 解析你的域名,开启代理功能,也就是隐藏你后端真实的 ip 即可。
lns04226
2 天前
问个别的问题,请问下 OP 你这个站点前端用的什么服务器,没有备案但是速度还挺快的
KING754
2 天前
后端算,返前端
KING754
2 天前
然后加时间戳。
dode
2 天前
先定期清理排行榜,让大家有参与感,清理异常速率的 IP 请求
bigbigeggs
23 小时 5 分钟前
@MossFox 感谢,学到了,“偷偷初始化一次这个” 感觉这个可行,如果不让 f12 捕获到 那就更好了
bigbigeggs
23 小时 5 分钟前
@lns04226 备案了,腾讯云的小水管
lns04226
3 小时 32 分钟前
@bigbigeggs 好吧,看你首页没备案号,还以为不在国内呢

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

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

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

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

© 2021 V2EX