游戏开发实习笔记:代码逻辑让前后端数据传输更安全(双端验证)

代码逻辑让前后端数据传输更安全(双端验证)

客户端在涉及到数据传输的前后端交互逻辑时,我以前的想法是客户端点击UI,将数据传输给服务器做处理,然后服务器将结果返回给客户端。就拿商品交易逻辑来举例:

在这里插入图片描述

这个逻辑有着漏洞,如果放在商业项目会导致经济损失。
步骤2中客户端将要出售的物品和拿到的价格发给服务器,这时候如果用户进行抓包,修改其中的数据(出售一件配置表中1元的物品,将数据改为1000),服务器就会将错误的数据存储起来。
在这里插入图片描述
同样,服务器将数据发给客户端的过程也不安全,抓包修改数据后客户端会显示错误的数据。
在这里插入图片描述
如何避免:
前端行为:告诉服务器出售物品(发送需要处理的商品),前端显示先从配置读一次价格显示出来 但是不会传到后端因为前端不可信所以不会把这边获得的配置内容传过去 。
后端行为:会单独的重新读配置,如果是出售购买等行为会基于收到的数据标识到对应表查相关内容然后再处理(出售行为时,如果玩家只有物品1,抓包修改成物品1,2,3,服务器读表验证玩家是否拥有这些物品)
在这里插入图片描述

步骤5中可以不验证的原因是就算修改了数据,客户端显示了错误的数据,在下次读表获取当前拥有的金币进行UI刷新时一样会得到正确的结果。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值