转:网页游戏都有哪些安全问题mynetstudy

知乎中的原问题是『网页游戏都有哪些安全问题?』,我觉得不妥,我给改成了『网页游戏都有哪些安全问题?如何做得更安全?』,同时,问题也从『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被黑,数据库会不会被拖库』改成了『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被入侵?入侵方式有哪些?如何做好网页游戏的入侵防御?挽救措施有哪些?如何才能最小化减少厂商损失?入侵方式有哪些?如何做好网页游戏的入侵防御?挽救措施有哪些?如何才能最小化减少厂商损失?』,更改的理由是『本文原提问者开篇提到「大家来研究探讨一下,网页游戏攻防技术。」,那么应该不光提到如何入侵,更应该提到如何防御,应该细心描述漏洞形成原理,规避方式,以提高研发者技能水平;应该详细讲解安全事件发生后,如何最小化减少厂商损失,减少用户损失,保护游戏平衡。』,幸运的是,这个修改,被知乎通过了。对此,表示感谢。

在后来阅读这篇提问以及回答时,已经有几位网友回答了,多数是站在安全工作者角度上回答了这个问题。在这篇日志里,我将以webgame研发者角度,切合游戏业务模块逻辑,从业务需求,数据库设计,程序编写,操作方式上来讲解漏洞形成原理,规避方案,也欢迎大家讨论。

webgame的游戏充值流程,跟普通网页充值流程一致,没有特殊的地方,其不同点就是跟其他众多平台做联合运营时,势必要每个公司做接口对接,且接口规范各式各样,且游戏厂商没有话语权,必须按照他们的接口规范来,这实在棘手。腾讯的充值接口的验证方式,安全性做的较为突出,大约代码:

在此基础上,还可以做的严谨点:

在网页游戏的研发中,多数都是使用框架来做,即使用REQUEST来的参数,作为请求文件名的一部分,来使用,那么很容易形成远程文件引入的漏洞。在我们之前的游戏中,曾出现过一例这样的漏洞问题。

webgame中的远程文件引入

AMF消息格式的WEBGAME中的SQL注入

为了提高游戏服务器的吞吐能力,网页游戏的架构也是一直在演变的。在之前以Mysql作为数据存储的webgame架构中,其他节点都是可以水平扩展,或者说依赖简单粗暴的增加服务器来解决,单单作为唯一数据存储中心,不能这么做。为此,很多webgame的数据存储改用Nosql来代替,甚至java、C/C++的游戏数据,直接在内存中操作,游戏关服时,才写入到DB中。故SQL注入的问题,也会越来越少。

Rpg类型的网页游戏中,多数都有道具出售的功能,直接卖到商店,以及道具材料从商店买入功能。当玩家同时针对买入、卖出两个操作,瞬间大量并发请求时,在服务器的处理逻辑一般有分别的两个进程处理,共享数据分别数据库中的对应账户余额表,如下图:

webgame买入、卖出并发请求处理

对于READ-UNCOMMITTED,可以读取其他事务中未提交的数据,而且据说性能还高不到哪里去,几乎没有在实际应用中使用;对于READ-COMMITTED,在同一事务中,会因为其他事务随时可能有新的commit,导致同一select可能返回不同结果。这个也不适合游戏业务;再说第四个SERIERLIZED,只要事务开启,所有其他查询,均排队等待该事务提交之后,对于上面提到的卖出买入情况,第二个事务的SELECT操作,不会立刻返回,会处于锁等待状态,一直到前一个事务结束。这个隔离级别,虽然能避免上面的问题,但性能较差,一般不会去使用。而REPEATABLE-READ隔离级别,也是mysql默认的隔离级别,从功能上,比较符合游戏业务需要,也应该是广大webgame架构中mysql的默认隔离级别。

引用DNF的漏洞新闻《利用网游漏洞狂刷游戏币赚钱玩家自曝3天赚17万》

玩家曝出刷币漏洞一个游戏道具可刷400人民币该漏洞到底是什么原来游戏中“云幂袖珍罐”这个道具,可以开出2件一样的游戏装备,还有极少几率开出游戏币,开出的装备不值钱,但如果开出金币了,则分为5000万、8000万以及1亿游戏币。而1亿游戏币,按正常市场行情,可在交易网上卖400多元人民币。据玩家称,在游戏中,角色的装备是需要用包裹来存放的,不过目前角色的包裹最多只有48格,也就是只能存放最多48件装备。漏洞就是利用包裹的有限空间,存放47件装备(存放满了又无法开罐子),只留下一格空位,而在开“云幂袖珍罐”出装备时,就会因包裹空间不足,而导致开罐失败,而罐子还存在。玩家继续开罐,直到出现金币,但金币不会占据包裹的空间,因此开罐成功,然后罐子消失。发现这个漏洞后,部分玩家狂刷游戏币,然后马上在第三方交易平台出售游戏币,兑换成现金。

这种问题,都是研发人员逻辑不严谨导致,这种问题,也较难发现。规避方式可以依赖下面提到的『运营数据监控』。

跟上面的卖出、买入一样,同时穿装备、整理包裹。在设计时,可能会将身上装备设计在装备表中;将不在身上的装备,设计到背包表中。当同时进行穿装备跟整理包裹的请求并发时,也会发生跟上面卖出,买入的情况,线程1读取DB,发现包裹里有这装备,然后准备删除背包表的这条记录,当准备写入到装备表时,另外一个整理包裹请求的线程来了,读取了整个背包表,进行道具的合并、排序。这时,之前的线程将这个装备写入到装备表,并删除了背包表里的数据,并提交事务。这个穿装备的所有操作都是合理、正常,且正确执行的。但另外一个整理背包的线程读取了之前的背包表里的数据,包括那件被穿上的装备。在游戏中,整理背包需要对可堆叠道具做堆叠操作的,意味着需要合并多个道具,删除部分道具。这意味着这里的操作,当前cgi线程的内存中的数据,将都会以覆盖的形式,写入到DB中,那么意味着,之前被穿到身上的那件装备,也会重新被写入到背包中。那就变成两张表里出现了两个相同唯一ID的相同属性的道具。玩家就可以把背包中的这个道具出售给其他玩家。

在java或者C之类程序中,数据放内存中的游戏,也会存在这个问题,除非做读锁,但读锁会带来锁等待,锁等待会导致线程被占用,阻塞后面请求的处理,堆积大量请求。导致系统负载升高,服务器繁忙,以至于无法响应。好了,大约理解道具复制的形成原因了吗?这个问题,我们从根本原因想想,问题到底出现在哪里?如何规避呢?细心的同学不难发现,对于穿装备的操作结果,会对下一个请求产生影响的,当前操作未得到服务端响应之前,服务端是不能处理下一个响应的。对此,我们做了响应处理锁--『用户并发请求锁』。

这种问题的发生,是因为锁的颗粒太大了,不应该将所有用户都锁住,最好细化到当前请求所影响到的单个用户,只锁住单个用户的数据。这样,才减少timebomb的发生。

比如去年的time33算法的hashdos的问题,使用json消息格式的webgame一定要注意,php只是在接收请求时,做了最大数量的限制。但在json解码之后的数据中,是没有处理的。这里千万别忘记了。

THE END
1.Poki(宝玩)免费在线小游戏Poki (宝玩) 拥有最丰富的免费在线游戏,从单人休闲到多人合作,致力于为您提供最有趣的游戏体验。打开Poki (宝玩),即可畅玩所有游戏,无需您下载、登录,更无弹窗干扰。我们的游戏支持台式机、平板电脑、移动设备等多种运行环境。无论是在舒适的家中,还是等车的路边,您都可以通过Poki (宝玩)享受游戏乐趣。每个月https://poki.cn/
2.创世下载站免费游戏软件资源创世下载站为广大用户提供一手的游戏软件下载资源,每天更新最新的游戏软件,拥有最全的国内外下载资源,同时为大家提供精品推荐,下载排行,手机游戏等内容,做用户最贴心最信赖的下载平台。https://www.cssmoban.com/
3.单机游戏单机游戏下载单机游戏大全中文版下载3DM游戏网为玩家提供最新的游戏新闻、攻略、单机游戏资源、汉化资源、游戏补丁、游戏论坛等,经过多年努力已成为游戏玩家首要选择的游戏资讯、游戏资源网站。https://www.3dmgame.com/
4.单机游戏单机游戏下载单机游戏门户游侠网为单机游戏玩家提供最新单机游戏业界动态、国内外单机游戏下载、单机游戏补丁、单机游戏攻略秘籍、单机游戏专题等内容。坚守单机阵地,弘扬单机文化!http://ali213.net/
5.游民星空游民星空是国内单机游戏门户网站,提供特色的游戏资讯,大量游戏攻略,经验,评测文章,以及热门游戏资料专题https://www.gamersky.com/
6.国内游戏网站概况你可以找到各类游戏,游戏分类,游戏厂家,游戏平台等的贴吧,你也会理所当然的陷入喷子的汪洋大海。大部分有用的内容都是转自各种其他网站,少有原创精彩文章。极不推荐。有手机APP。 6.知乎https://www.zhihu.com/ 你可以在这里分享你刚编的故事(。还是有一些大神出没于此,不过毕竟也不是专注于游戏的网站,有问题过https://www.douban.com/note/629935446/
7.搜狐网站转行AI游戏 能否重振"自动驾驶第一股"?|特斯拉皮卡入华咋这难 星纪元ET四驱"钉胎"爬雪坡遭质疑|新势力困境 隐藏产业密码? 《沙石镇时光》在线模式跨平台联机功能即将全面启动 须佐卡卡西超帅奥义图是直购?情报会嘉宾公布,3月高招策划分析 国漫新番快讯:火凤燎原、凡人修仙传等4部https://www.sohu.com/
8.黑神话悟空无缘TGA年度大奖,是否是中国游戏尚未深度影响全球游戏东拼西凑的垃圾游戏,如果不是因为要宣传ue和显卡连ign6分都勉强基本功不合格的纯粪游戏,依靠有形的https://www.zhihu.com/question/6760547531/answer/55126720136
9.www.scmcエリカまゆいふ在线www 国产高清一区二区 男生坤坤插女生坤坤插插 08.60MB 8132好评 原神申鹤去掉小内无爱心图片 瑟瑟游戏网站 国产全黄 052.52MB 30好评 快肏我 宋轶AI明星造梦厂 小和尚把荫蒂添的好舒 861.05MB 1390好评 自慰抽搐喷白浆AⅤ软件 黑人大战日本美女黄色视频 成人妆容新手化http://www.scmc-xa.com/xxxr/367382.shtml
10.爱给网音效配乐3D模型视频素材中国最大的数字娱乐免费素材下载网站,免费提供免费的音效配乐|3D模型|视频|游戏素材资源下载。http://aigei.com/
11.python游戏后端框架知乎多人同时在线游戏如何开发导读 在技术和文化领域,大规模多人在线游戏(MMO)毋庸置疑是我们当今世界的潮流之一。很长时间以来,写一个 MMO 游戏这件事总是会涉及到大量的预算与复杂的底层编程技术。不过在最近这几年,事情迅速发生了变化。基于动态语言的现代框架允许在中档的硬件上面处理大量并发的用户连接。同时,HTML5 和 WebSockets 标准使得https://blog.csdn.net/weixin_57992300/article/details/137877062
12.国家市场监督管理总局检测报告上传后多久可以在网站上查到 12-18 政务 总局文件 | 政策解读 | 数据 | 网站监测 | 召回 | 行政处罚决定 市场监管总局关于印发《网络交易执法协查暂行办法》的通知 12-20 市场监管总局关于印发《横向经营者集中审查指引》的通知 12-20 市场监管总局关于印发《防范外卖餐饮浪费规范营销行为指引》的通知 https://www.samr.gov.cn/
13.如何评价妹调教日记这款游戏?非fd知乎《如何评价妹调教日记这款游戏?非fd - 知乎》剧情简介:完善上市公司退市机制借着这一分感应招凝飘荡回天魔巢天魔巢的入口出现越来越多的天魔境界也更高如何评价妹调教日记这款游戏?非fd - 知乎在招凝注视前的刹那那些情绪与紧绷都克制了秦恪渊只说无事且去寻他们吧招凝双唇颤了颤与其去想那虚无缥缈的奇迹后者http://www.sjz40z.com/skynyk/055474