前端提交的数据如何处理才能防止被篡改?应用场景是前端 JS 小游戏提交用户得分到后端,防止用户“开挂”提交高分 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qiayue
V2EX    问与答

前端提交的数据如何处理才能防止被篡改?应用场景是前端 JS 小游戏提交用户得分到后端,防止用户“开挂”提交高分

  •  
  •   qiayue
    PRO
    2014-10-29 10:33:36 +08:00 5123 次点击
    这是一个创建于 4045 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    2014-10-29 17:40:36 +08:00
    canesten
        1
    canesten  
       2014-10-29 10:35:03 +08:00   1
    WEB的话,无解。
    tabris17
        2
    tabris17  
       2014-10-29 10:39:44 +08:00   1
    把逻辑验证放到服务器进行,客户端只提交用户操作数据
    xidianlz
        3
    xidianlz  
       2014-10-29 10:40:12 +08:00   1
    加密后提交把 而且加密的代码也要加密哦
    qiayue
        4
    qiayue  
    OP
    PRO
       2014-10-29 10:41:46 +08:00
    @tabris17 难就难在,理论上用户想造假的话,操作数据也是可以造假的
    所以,估计真像 @canesten 说的,无解
    Ricky123
        5
    Ricky123  
       2014-10-29 10:42:27 +08:00   1
    加密d的代码的加密代码也要加密哦
    XD
    qiayue
        6
    qiayue  
    OP
    PRO
       2014-10-29 10:43:30 +08:00
    @Ricky123 子子孙孙无穷尽也
    tabris17
        7
    tabris17  
       2014-10-29 10:45:34 +08:00   1
    @qiayue 操作数据造假不会有太大影响,无非是按键精灵之类的自动操作,不会导致业务出问题
    raincious
        8
    raincious  
       2014-10-29 10:50:00 +08:00   1
    @canesten

    其实严格说来客户端也无解了,因为数据都是客户端提交的(只是好歹还能加密数据包)。

    如果服务端实时性高的话,只能判断用户操作,发现作弊Kick了。

    不过直接提交用户得分的话,这个设计确实需要重新思考。
    qiayue
        9
    qiayue  
    OP
    PRO
       2014-10-29 10:58:39 +08:00
    @raincious 那就按@tabris17 说的,改成前端提交用户操作数据,后端计算分数
    lincanbin
        10
    lincanbin  
       2014-10-29 11:29:35 +08:00   1
    @qiayue 问题就变成了如何判断用户提交的操作数据是真实可靠的?
    qiayue
        11
    qiayue  
    OP
    PRO
       2014-10-29 11:44:42 +08:00
    @lincanbin 操作数据会有一定的规律性,造假比较难(但也不是不能造假)
    所以只是提高了造假成本而已
    akira
        12
    akira  
       2014-10-29 11:54:16 +08:00   1
    没有任何办法可以绝对防止用户作弊的,只能是在一定程度上防止。
    前期提交数据的时候随便做个加密凑合着用吧。

    个人意见是前期不要浪费时间在这种事情上,专心做好产品吧。。
    binux
        13
    binux  
       2014-10-29 12:01:15 +08:00   1
    作为实物游戏,解魔方都可以用机器手开挂。
    作为屏幕内的程序无法判断坐在电脑前玩你的游戏的是一个人还是机器人。
    justplaymore
        14
    justplaymore  
       2014-10-29 17:40:36 +08:00   1
    为提交数据做个校验散列,散列算法在服务器端实现,这样别人不知道算法的情况下,散列能起到校验作用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     892 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:53 PVG 04:53 LAX 12:53 JFK 15:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86