V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bigbigeggs
8.67D
V2EX  ›  问与答

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

  •  
  •   bigbigeggs · 11 小时 40 分钟前 · 524 次点击

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

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

    • 校验请求的 UA Refer 等基础校验
    • 增加前后端 token 校验,使用混淆盐的方式
    • 拦截高频 IP 地址

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

    求助安全的大佬

    7 条回复    2025-10-22 00:15:49 +08:00
    hallDrawnel
        1
    hallDrawnel  
       11 小时 37 分钟前   ❤️ 1
    套 CF ?
    dcvsiug
        2
    dcvsiug  
       10 小时 56 分钟前
    刚试了一下,搜索 token 然后复制一段 js 到 claude 就破解了。要不经常变化 token 规则提高一下破解时间成本?
    bigbigeggs
        3
    bigbigeggs  
    OP
       9 小时 27 分钟前
    @hallDrawnel cf 是什么,需要花钱去买么
    hallDrawnel
        4
    hallDrawnel  
       9 小时 27 分钟前
    cloudflare @bigbigeggs 有免费的额度
    bigbigeggs
        5
    bigbigeggs  
    OP
       9 小时 26 分钟前
    @dcvsiug 是的,怎么混淆,AI 还是可以很轻松识别的,经常改代码总感觉不能一劳永逸,不知道有没有更好的办法
    MossFox
        6
    MossFox  
       9 小时 0 分钟前   ❤️ 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
        7
    sbmzhcn  
       8 小时 50 分钟前
    套 cloudflare ,搞定绝大部分人。完全免费。 使用 cloudflare 解析你的域名,开启代理功能,也就是隐藏你后端真实的 ip 即可。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4744 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:06 · PVG 09:06 · LAX 18:06 · JFK 21:06
    ♥ Do have faith in what you're doing.