比较热门行业的网页游戏没收获,没人知道吗~~~怎么做呢,能否帮忙--!!!

先锋游戏知道信息频道欢迎您
有没有一些比较好玩的网页游戏,要手动的,键盘操作,最好像格斗一类的,有谁知道吗?!!!
[SOSO用户] [ 17:02:55] (<span id="tgd) (<span id="tfd) &&
不知该怎么办?
最佳答案 嗯,这样吧,给你介绍个好了,&我一直就是这个平台上玩的,里面的游戏都挺好玩的,画面不错,人气很足,都是很热门的,现在新手的话还有超级豪华大礼包哦,你有兴趣也一起来玩吧:网址:/yx.htm&(复制粘贴到浏览器即可)祝你玩的开心,请采纳,谢谢~。。&
昵称: 验证码:
评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述
其他网游相关知识
其他网游其他问题
其他网游资讯小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
【讨论】90后美女都爱玩什么网页游戏?
对于网游,70后骄傲的说我们有传奇系列,80后骄傲的说我们有魔兽世界,如今的网游玩家群体中,90后逐渐成为主力军,90后逐渐成为游戏玩家的主流,90后孩子们喜欢什么类型的?有人说90后是非主流一代,没内涵胡乱跟风,有人说90后美女是个混乱体让你们摸不到头脑,你们想知道90后美女都喜欢干什么吗?
其实90后美女大多喜欢休闲类和PK类,休闲类音乐游戏,歌曲风格从R&B、hip-hop一直到电子舞曲,不论中国、韩国、日本还是欧美的流行音乐都应有尽有。游戏操作简单,劲舞系列就是此类的代表。
更多,请大家持续关注w707网页游戏门户站。
【讨论】 你为游戏所做过最愚蠢的事情是什么?
无论你现在想对一款游戏投入多大的金钱和精力,都要想着能够做到多年以后无愧于心,其实有时候,我们为游戏做的事情,并不是真的是称之为愚蠢的事情。只是在当时看来是完全值当的事情而已。亲爱的玩家们来说说,你为游戏所做过最愚蠢的事情是什么?
【讨论】假如游戏激活码不要钱,你更想玩内测还是公测网页游戏?
对于喜欢尝试新网游的玩家来说,最熟悉的一个词莫过于&测试&了。细分的话,他们包括首测、内测、二测、三测、N测、封测、不删档测试、不删档限号测试、不删档不限号测试、开放测试、公测&&等等。总之一个测试,这几年被中国网游界玩出了各种花样。
回想起网游界还比较纯真的那个年代,厂商向玩家提供测试激活码,还只是单纯为了让玩家一同来测试游戏BUG、提交对游戏的改进意见,逐步将游戏完善,以便在公测时能够以最佳的状态迎接所有玩家。
假如游戏激活码不要钱,你更想玩内测还是公测?欢迎玩家共同来讨论
现在玩什么网页游戏可以赚钱?
今天w707小编为大家揭秘那些游戏厂商的另类赚钱的,究竟是怎么样的呢?这里就不提前剧透了,大家慢慢观看。
说实话,在游戏里经常碰到一些要钱的。不是说什么他是临时钱不够,来借钱什么的。而是他根本就不知道如何赚钱,如何独立生存,如何做个游戏的强者。&&
(A)日常赚钱方法:做副本任务
(B)赚钱方法之技能篇:打造武器、缝裁、烹饪、制药技能赚钱
(C) 剧情技能赚钱法
(D)奸商之赚钱法门
(E)另类赚钱任务:抓宠物、跑环等。
(F) 最快和最卑鄙无耻的赚钱方法
当然每款游戏的赚钱方法都不一样,需要大家去总结。最后希望大家都能赚钱。更多,请大家持续关注w707网页游戏门户站。
现在什么样的手机游戏好玩?
秉着人人平等的准则,为了重口游戏能重见天日,今天w707小编就特意分享几款平台上几大重口味的,让那些同样重口味的主们把它们领走,让重口味游戏与重口味主子一起从此过上幸福的生活!
《大爷叫草泥马》
《蠕虫碗》(worm bowls)
《丑陋的手》(Uglyhand)
《丑陋的手》与《蠕虫碗》师出同门,都是由KAYAC公司开发。
《僵尸汉堡》
《挤痘痘》
《厕所历险记》(Toilet Flush Adventure)
更多,请大家持续关注w707网页游戏门户站。
网游负能量 有没有不花钱又好玩的网页游戏?
喝了那么多心灵鸡汤,当时深刻,隔天脑后,从来也没有助我成功过,今天w707网页游戏小编给大家来点儿负能量,要相信负负得正的深刻道理。
有没有不花钱又好玩的?
1、把杀我的一个个全加了仇人,却一次也没杀死过对方。
2、团长跟那个人走好近,尼玛肯定又黑了装备黑了工资,再也不去野团了。
3、决定了晚上8:30就退游戏学习,卧槽已经12点了啊。
4、打架又被控死了,策划是傻逼么?为什么不给我解控?为什么解控CD这么久?
5、看到别人放烟花,尼玛别拉低我FPS,默泪怎么没人给我放烟花?
6、游戏里找感情的人都是现实里缺爱!
更多,请大家持续关注w707网页游戏门户站。
几款热门休闲竞技网页游戏大盘点
炎炎夏日的到来,让越来越多的朋友都不愿意出门,只喜欢在家中吹冷气,更别说进行一下久违的运动了。既然不愿意出门运动,那就一起来游戏中运动一番吧。在经过小编精心挑选之后,给大家带来了几内容很不错的,让w707在这个酷热的夏日带大家来游戏中体验一番吧。
 1.弹弹堂 2.炫装卡丁车 3.疯狂坦克 4.坦克大战online
  5.富甲西游 6.砰砰堂 7.音乐叉叉
更多,请大家持续关注w707网页游戏门户站。
2014好玩的手机游戏推荐
2014好玩有哪些?现在的游戏五花八门,很多小伙伴不知该安装哪些游戏好,现在w707小编整理了几款2014好玩的手机游戏推荐,一起来看看吧!
1)天天飞车
2)时空猎人
3)全民飞机大战
4)天天爱消除
5)保卫萝卜2
6)Hello越狱兔
更多,请大家持续关注w707网页游戏门户站。
推荐一款值得一试的新国产角色扮演网页游戏
游戏荒?不好玩?好游戏都去哪儿了?w707小编给各位玩家推荐几款值得一试的新国产。
值得一试的国产角色扮演:黑金
《黑金》是蜗牛游戏继《九阴真经》之后,又一款野心之作,从游戏参展E3、请艾薇儿做代言种种高大上的宣传,就可以看出蜗牛是想把这款游戏打造成&国际大作&!
值得一试的国产角色扮演:斗仙
作为吉比特继《问道》后的重头戏,游戏凭借优异的画面表现和华丽的连招设定,表现出了较为出色的游戏水准。
值得一试的国产角色扮演:龙武
显然,游戏开发团队将目光瞄准了网游玩家的惰性,游戏给人简单、便捷的游戏体验,同时有着不错的动作性。适合不喜欢动脑的休闲玩家。
更多,请大家持续关注w707网页游戏门户站。
《仙劫》给我一双翅膀我就能飞翔 翅膀系统详解
&本文转载自:&无论在任何情况下,拥有一个酷炫的翅膀无疑是一件拉风又实在的事情。在《》中,华丽的翅膀不仅可以彰显人物的个性、展现实力,还可以有效的提高人物属性和提供一些特殊技能,下面就来详细介绍《》中,翅膀的所有相关事项!1、可在翅膀界面通过升星提升翅膀,升星需要消耗翅膀升阶符。2、翅膀共10阶,进阶后便可获得新的翅膀形象和更加强大的属性。图01&3、翅膀技能
翅膀拥有多个被动技能,学习技能后在战斗中有一定几率触发这些技能,具体学习条件如下:技能名称&& & 触发方式激活条件技能说明提速被动翅膀达到3阶永久增加30点移动速度凝血被动翅膀达到4阶攻击时3%几率触发凝血BUFF效果,每秒恢复自身800生命值,持续10秒狂暴被动翅膀达到5阶攻击时5%几率触发狂暴效果,攻击加成10%,暴击加成10%,持续8秒。重生被动翅膀达到6阶主角死亡,有15%几率无CD满血满状态复活嗜血被动翅膀达到7阶每次攻击时有10%的概率吸收目标玩家血量,每次随机吸收100~1000点血量(注:值近战、远攻有效)羽落被动翅膀达到8阶攻击时5%概率触发羽落绝技,从空中坠落无数羽毛向周围500范围目标连续攻击4次(每次攻击间隔0.6秒)雷电被动翅膀达到9阶攻击时附带500点雷电伤害,并有5%几率令目标单位移动速度下降50%。圣光被动翅膀达到10阶获得后,每5秒自身300范围内的敌对目标都将受到1000点神圣伤害(无视防御)
最新最好玩的网页游戏,最详尽的尽在W707网页游戏专区! &
《仙劫》群战走起!帮会战怎样玩
&本文转载自:/3084/gl/con_15930.shtml&&帮会战,是游戏中最令玩家热血沸腾的团体战役,《》在最新推出的&帮会战&中,融入了限时抢夺、镇帮石保护等趣味元素。在这里,玩家的帮会战不再只是简单的打打杀杀,还要注意团队的默契配合和智谋的运用。多元化的玩法,将让玩家尽享与众不同的帮战快感!。&参与条件:玩家只要加入帮会即可进入帮会战场
帮会战开启时间:每周三、周日晚20:00-20:30进入方式:
帮会战开启后,会出现战场提示,只要加入帮会的玩家都可以点击即可直接传送进帮会战场。战斗模式:进入战场所有玩家将会被改为帮派模式,开始抢夺镇帮石,拿到镇帮石的玩家外观形象将会改变成镇帮石,系统会按帮派所有成员拥有镇帮石时间计算排名,从而判断最终的胜负。胜负判定:1、某一帮派手持镇帮石时间累积到10分钟,即为获胜,战争结束;2、战场30分钟时间已到,手持镇帮石时间最长的帮派获胜;获胜奖励:3、按帮派手持镇帮石时间计算排名,排名越高的帮派及参战帮众获得的奖励越高& & 丰厚奖励:1、该帮所有成员在下次帮派战开始前可受到镇帮石的护佑,内外攻击增加300点,下一次帮会战开始前收回镇帮石。2、排名第一的帮会所有成员将获得天下第一帮绚丽称号 。3、参与帮会战的所有帮会可获得丰厚奖励。
最新最好玩的网页游戏,最详尽的尽在W707网页游戏专区! &
《仙劫》有帮派就有任务 帮派任务该怎么做
&本文转载自:/3084/gl/con_15931.shtml&在《》中,玩家都是要加入帮派的。当然,有了帮派就少不了帮派任务咯,那么帮派任务该怎么做呢?跟着小编一起来了解吧。
帮派任务基本规则  1、只有加入了帮会的成员才能在自己的任务列表中领取帮派任务。  2、每名玩家每日最多完成20次帮派任务,每完成都可获得帮贡作为奖励(帮贡可在帮会商城兑换道具).  3、玩家在完成每1轮任务时,将随环数的增加而获得更高的任务奖励。  4、帮会任务每日24点整清空重置,玩家可以继续接取帮派任务。5、帮派任务不可以放弃,当任务满足需求后自动完成,下一任务自动接取6、如退出帮会后帮会任务界面将消失。
最新最好玩的网页游戏,最详尽的尽在W707网页游戏专区!&&
&更多精彩,尽在门户站
《仙劫》宝石升级系统详解
&本文转载自:&《》的宝石升级系统不需镶嵌和摘取,宝石升级与部位相关,一次升级,终生享受,无论更换任何装备都将保留宝石的属性。&1、每个部位可装备三颗宝石,总计36颗,宝石种类分为生命、攻击、防御、暴击4个类型。&2、宝石最大等级可强化到7级。&
最新最好玩的网页游戏,最详尽的尽在W707网页游戏专区!&&
&更多精彩,尽在门户站
《武圣Q传》实力对决 强者称霸义盟战
&本文转载自:自古以来,弱肉强食好像是亘古不变的道理。弱者让人同情,强者却让人臣服。想要在这乱世风云中看你是强者还是弱者吗,加入《武圣Q传》义盟战。真英雄,假小人,在这里,一切凭实力说话。
开启义盟战  在《武圣Q传》中,玩家义盟等级达到2级后,盟主便可为义盟选择阵营&&魏、蜀、吴三国,选择阵营后获得参加义盟战的资格。  在义盟战活动期间和洛阳NPC易猛战对话进入义盟战地图。争王战&和&封帝战&  游戏中义盟战分为两部分,分别是  争王战:  每周二、周五 20:35~21:10举行,每个阵营中积分最高的义盟成为国王盟,第二的成为诸侯盟。  国王盟和诸侯盟将参加周六的封帝战。  封帝战:  每周日 20:35~21:10举行,从参战的国王盟和诸侯盟中角逐出皇帝盟。  若服务器在周六前没有开启争王战,则封帝战改为争王战。义盟战规则  玩家进入义盟战场后,通过和其他义盟玩家或怪物战斗获得积分和兵符。活动结束后根据义盟积分排名选出皇帝盟、国王盟、诸侯盟。  积分获得:  战场内会定时刷新怪物,击败怪物获得积分。  用兵符兑换积分。  兵符获得:  每人参战人员有5个初始兵符,和其他义盟成员战斗,胜利方将夺取失败方部分兵符。  击杀怪物获得兵符。使用义盟资金购买兵符。&
更多精彩,尽在W707门户站
《霹雳觉》好玩吗?系统详解
&本文转载自:/3083/gl/con_15927.shtml
很多玩家可能对《》有点陌生,不知道这个游戏怎么样。今天小编就带大家了解一下这个游戏,关于游戏中的系统,我们一起来看一下。
【战斗互克】
单个职业之间无平衡而是互有克制关系,整体呈大平衡。
挌挡克制闪避、闪避克制暴击、暴击克制挌挡:
克制方在攻击被克的一方时,会压制对应的特性(闪、挡、暴),并造成额外伤害。
【伙伴系统】
庞大的伙伴招募系统将为玩家提供数百位高人气经典角色作为伙伴选择。
【武道列传】
当前市面上的游戏大多都不注重游戏本身的文化内涵,所以剧情粗制滥造。霹雳决不但拥有极其出彩的以玩家为视角的主线剧情,还特别推出了武道列传这一特别的系统!
武道列传是一个专门为游戏中经典角色而准备的人物传记式系统,以巧妙的方式叙述这个角色的故事,旨在将那些角色更加鲜明的展现给玩家,为玩家树立一个个能够记住的游戏角色!
【阵法系统】
有别于一般策略游戏的布阵系统,霹雳决的阵法除了在阵型选择以及阵位排列这两个常见的基础玩法上,将阵法系统深度挖掘,使其拥有多个层次的玩法。
特别是阵法技能,使得每个阵型还拥有了自己的特殊技能后,阵型的特点更加突出,配合每个角色自身的特性和技能以及职业互克的关系,大大的丰富了策略性。
【化身系统】
霹雳布袋戏的故事中,常常出现&化身&这一极具特色的设定,为了更好的让玩家在这个霹雳的世界中享受游戏的乐趣,自然不能免俗的要有化身系统。
玩家在游戏中可使用上百个化身,拥有那些经典角色的造型变得不再遥远。
【搜集系统】
从1988年至今,霹雳布袋戏已经走过了十几个年头,其中出现了无数的经典人物、神兵、异兽,这些都为游戏的搜集系统提供了绝好的素材,能让有搜集喜好的玩家玩得痛快!&
更多精彩,尽在门户站
步步精准!独家秘制《丛林战纪》新手攻略
本文转载自:/game/10796.shtml国内首款实时对战卡牌《丛林战纪》新服火爆进行中,小伙伴们是否早已跃跃欲试?那还等什么!赶紧参阅小编独家秘制的《丛林战纪》新手攻略,助你菜鸟晋级之路一帆风顺!    (图1)  奖励篇:各种奖励 &全部拿取  《丛林战纪》中有的各种礼包,在线宝箱、活跃礼包、抽奖礼包、首冲礼包、等级礼包、VIP奖励、活动礼包,种种礼包奖励都是非常的丰富的。&没有钱,寸步难行&,在《丛林战纪》中更是如此,因礼包的多样性,我们所有得到的东西就越多,而且这些东西都是我们所必须要的东西,可以用来强化、合成、抽取扭蛋的必须品。    (图2)    英雄篇:巧妙召唤 &着重培养  &得英雄者得天下&,在《勇者前线》中英雄是贯穿全局最重要的一环,不同的英雄拥有不同的作用,我们需要合理的去培养,去强化其的攻击力,每个玩家出战队形都不同,喜欢的卡类也不同,所以着重培养自己的卡牌必须得巧妙。    (图3)    战斗篇:提前准备 &及时操控  在对战前我想大家肯定会配合不同的卡组去进入不同的副本或对战,只有掌控了这种手法,就离大神的日子不远以。    玩法篇:四大玩法 &环环相扣  在对战时,我们需要配合不同的场景合理的安排英雄所放置的位置,是先守还是先攻,一切都由我们自己做主。 & 《丛林战纪》中所有的英雄和怪物均分为水、火、树、雷、暗、光属性&&水克火,火克树,树克雷,雷克水,暗、光互相克制,而且《丛林战纪》采用玩家自主选择攻击顺序和锁定目标的战斗模式,因此每局战斗前,玩家可锁定攻击目标,选用克制对方属性的英雄率先出战,可达到战斗事半功倍的效果。     小编独家秘制的《丛林战纪》新手攻略现已全部奉上,虽然比较粗糙,但是从整款游戏最核心的英雄、战斗和玩法三大方面为你全面解析,相信小伙伴们提前熟读攻略,即可不走冤枉路,不花冤枉钱,快速飙升等级,轻轻松松成为丛林大陆上的最强新手英雄!
更多精彩,尽在W707门户站
2014好玩的手机单机游戏有哪些?
2014好玩的手机单机游戏有哪些?不用着急,一起来看看w707小编为玩家整理的一份2014好玩的手机单机游戏推荐吧!!!
2014好玩的手机单机游戏一:
一)植物大战僵尸2
植物大战僵尸2是植物们与僵尸们史诗般的斗争,将在不同的时空维度中进行续写!新的植物,新的僵尸,新的玩法,结合最先进的触摸屏技术,玩家可以打破传统意义上的塔防,直接加入僵尸抵抗战。
2014好玩的手机单机游戏二:
二)保卫萝卜2
保卫萝卜2是保卫萝卜的续作。同样的包装精美,同样可爱超萌的塔防游戏。操作极易上手、任务灵活多样、内容搞笑至极!集齐五颗&圣光萝卜&,就能召唤出萌神&牛角&,并从此获得&萌萌惹人爱&光环。
2014好玩的手机单机游戏三:
三)神庙逃亡2
作为当下最热门的一款跑酷手机游戏,由乐逗游戏独家代理运营的中文版《神庙逃亡2》现已成为风靡大陆的跑酷之王,无论你在大街小巷的任何一个角落都能看到这款游戏的忠实拥趸。
更多网页游戏资讯,请关注w707网页游戏门户站!!
目前最火人气最高的网页游戏排行榜 看哪个你玩过?
网页游戏有很多,那么什么网页游戏好玩呢?这是很多游戏爱好者一直都想找的答案,因为一款好玩的网页游戏能让自己收获更多。以下是一些好玩的网页游戏推荐。
第一,【魔兽世界】大型角色扮演/奇幻/3D/副本
《魔兽世界》(World of Warcraft、简称WoW或魔兽)是著名的游戏公司暴雪娱乐(Blizzard Entertainment)所制作的一款大型多人在线角色扮演游戏(MMORPG)。
第二,【剑灵 】大型角色扮演/奇幻/3D/副本/动作/虚幻3/18X
《剑灵》(Blade & Soul)是韩国网络游戏著名开发商NCsoft开发的大型3D MMORPG奇幻网络游戏。游戏于2008年首次曝光,这是一款试图摆脱单调的游戏方式,让玩家体验新乐趣的奇幻武侠动作MMORPG。游戏由《天堂2》的开发总监负责开发,知名画面设计师担任美工,虽然已经删除了一批太过于暴露的角色,但游戏现有的女角色还是非常的性感。
第三,【梦幻西游2 】大型角色扮演/玄幻/2D/副本/Q版
《梦幻西游2》(原《梦幻西游》)是一款由中国网易公司自行开发并营运的网络游戏。游戏以著名的章回小说《西游记》故事为背景,透过Q版的人物,试图营造出浪漫的网络游戏风格
更多2014最牛的网页游戏,请大家持续关注w707网页游戏门户站。
好玩的免费网游推荐 玩转各种人气热门网页游戏
介绍几款好玩的免费网页游戏给大家,不同类别的网游推荐一定能满足你挑剔的要求。想玩免费网页游戏就来看看,各种好玩的网页游戏等着你哦!
战略类好玩免费网游:建议你玩DOTA(非网游,平台对战,磨练策略和操作的不二之选)
RPG类,建议你玩寻仙(中国版WOW,拖不动WOW的次要选择,非限时收费)
格斗类好玩免费网游:建议你玩DNF(横版格斗大作,RPG与PVP共存,街机对战模式让PK更酣畅淋漓)
战争策略网页游戏:建议你玩坦克世界(貌似配置要求有点高,但真实再现二战时期的场景、坦克,对战极具历史感和真实感)或者去玩快要公测的全球使命(第三人称,双主武器模式,让战斗更灵活和畅快,多种模式也让你玩到够)
赛车类好玩免费网游:建议你玩跑跑卡丁车或QQ飞车(Q版形象,模式多、玩法多,飙车爱好者的最爱)
动漫类好玩免费网游:建议你玩SD敢达(以高达为原型,Q版形象,对战爽快,竞技感十足)
射击类好玩免费网游:建议你玩CF或AVA(虽然不如CS经典,但玩家众多对战刺激)
音乐类好玩免费网游:建议你玩热舞派对(许多道具免费,人物形象也很具美感)
上面介绍的几款好玩免费网游都是目前人气很高好玩免费网游:有兴趣的话可以自己试玩一下。不同类型的网游推荐,偶尔尝试一下不同的游戏还是挺爽的!更多2014最牛的网页游戏,请大家持续关注w707网页游戏门户站。
足球游戏哪个好玩? 2014好玩的足球网页游戏推荐
& &&2014年的夏天是属于巴西足球世界杯的夏天!今年世界杯是第20届世界杯足球赛,将有32支顶级球队在巴西一较高低。同时,巴西世界杯是首届运用门线技术的世界杯,这无疑再次为这个变幻莫测的赛场增加了戏剧性!虽然没有中国队(唉,说多了,都是泪&&),但同样是球迷们的饕餮盛宴!
那么对于足球游戏来说,那款足球游戏最好玩呢?今天w707小编就为您推荐几款好玩的足球网页游戏。
一,FIFA 14 让足球游戏更具真实物理特性
点评:FiFA 14拥有全新的射门系统与护球系统;足球更加真实的物理特性;智能队友及全球球探网络。球的物理运行轨迹将更加真实,你可以在比赛中完成更加细腻或更远距离的传球,这使得球员可以完成长距离射门。
开发商:EA 运营商:EA 运营状态:主机
&&& 二,自由足球 街头艺术与足球的完美结合
点评:《自由足球》是腾讯游戏首款运动足球网游,由韩国知名开放商JOYCITY研发,原汁原味的FreeStyle,游戏中玩家可以控制自己创建的角色,8分钟一局,与其它玩家一同组队,进行3V3,4V4等多个模式的对抗比赛。《自由足球》采用个性时尚的人物风格,让街头艺术、足球艺术得到充分体现。
开发商:JOYCITY 运营商:腾讯游戏 运营平台:端游
三,实况足球ONLINE KONAMI与NHN的网游新作
点评:《实况足球Online》是《实况足球》的制作商KONAMI与韩国NHN合力制作的网游新作,力图打破FIFA OL系列在韩国的垄断地位,网游延续了实况系列一贯的特点,并且将画面表现力提升到了一个很不错的水准上。
开发商:KONAMI 运营商:NHN 运营平台:主机
更多2014最牛的网页游戏,请大家持续关注w707网页游戏门户站。&&
站长在关注要玩网页游戏平台没收获,没人知道吗~~~怎么做呢,能否帮忙--!!!_百度知道
要玩网页游戏平台没收获,没人知道吗~~~怎么做呢,能否帮忙--!!!
提问者采纳
很简单的KeH
其他类似问题
为您推荐:
网页游戏的相关知识
其他1条回答
你好这位亲,我现在给您推介一个不错的平台,我现在在0909wan上玩武尊感觉还是不错的,不妨我们可以一起玩呀~~
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被入侵?入侵方式有哪些?如何做好网页游戏的入侵防御?挽救措施有哪些?如何才能最小化减少厂商损失?
个人感觉不如客户端网游安全。这里的安全指的是防御入侵,钓鱼,外挂的能力。网页游戏因为 Web 环境的限制,不太可能使用太变态的通讯加密手段,大部分网页游戏还都是纯 HTTP API 的形式,没有加密和混淆,很容易抓包然后写出脚本类(自动完成某些工作)的外挂。按我的了解,大部分网页游戏都没有使用SSL, 在不受信任的网络中很容易被抓包,窃取敏感数据,或者钓鱼等等。另外网页游戏因为技术门槛略低,可能服务器的维护工作不如客户端网游的服务器那么正规,容易出现疏忽。而且网页游戏的服务器可能会使用一些知名的软件(Nginx等), 和编程语言,框架等。相比于完全自行编写的客户端网游服务器,出现一些通用的漏洞的漏洞的可能性更大。
谢邀。。。。 压根没人邀请我,好像这个词成为知乎的通用开篇词语。十月一的假期间,看到这个问题,当时没怎么在意。几天后,在微博上,又看到这个问题,冥冥中,有种想回答的冲动。上周六时,研发部门内部周会时,听到其他项目组的一个整型溢出问题,导致刷钱的bug。这更加坚定我要回答这个问题的决心,拯救地球的任务,就交给我了。以下是在下经历过的webgame安全问题的经验,定有不妥指出,还请各位斧正。如果觉得帮助了你,亦可分享给其他做webgame研发的朋友,做交流探讨。原问题是『网页游戏都有哪些安全问题?』,我觉得不妥,我给改成了『网页游戏都有哪些安全问题?如何做得更安全?』,同时,问题也从『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被黑,数据库会不会被拖库』改成了『大家来研究探讨一下,网页游戏攻防技术。必定,这个话题很敏感。目前,网页游戏已经很多了,会不会被黑产盯上?网页游戏会不会被入侵?入侵方式有哪些?如何做好网页游戏的入侵防御?挽救措施有哪些?如何才能最小化减少厂商损失?』,更改的理由是『本文原提问者开篇提到「大家来研究探讨一下,网页游戏攻防技术。」,那么应该不光提到如何入侵,更应该提到如何防御,应该细心描述漏洞形成原理,规避方式,以提高研发者技能水平;应该详细讲解安全事件发生后,如何最小化减少厂商损失,减少用户损失,保护游戏平衡。』,幸运的是,这个修改,被知乎通过了。对此,表示感谢。前面安全专家 站在安全工作者的角度,回答了这个问题。下面我将以webgame研发者角度,切合游戏业务模块逻辑,从业务需求,数据库设计,程序编写,操作方式上来讲解漏洞形成原理,规避方案,也欢迎大家讨论。 登录认证
近几年,网页游戏几乎都是以联运方式运营,意味着游戏服务器本身不保存用户密码,用户登录在平台,通过平台跟游戏服务器的接口对接登录。接口做加密认证。故webgame的帐号密码安全问题,这里不提了。但登录认证的hash字符串安全,也还是要注意的。比如登录hash字符串的生效时间,hash字符串的加密参数来源,比如包括用户名、登录IP,浏览器user-agent等数据,以防止改hash被泄漏了,也是很难通过服务器的验证。游戏充值
webgame的游戏充值流程,跟普通网页充值流程一致,没有特殊的地方,其不同点就是跟其他众多平台做联合运营时,势必要每个公司做接口对接,且接口规范各式各样,且游戏厂商没有话语权,必须按照他们的接口规范来,这实在棘手。腾讯的充值接口的验证方式,安全性做的较为突出,大约代码:$signKey = array('openid','appid','ts','payitem','token','billno','version','zoneid','providetype','amt','payamt_coins','pubacct_payamt_coins');
$sign = array();
//从GET参数中,对比找出上面参数的值
foreach($signKey as $key ) {
if (isset($data[$key]))
$sign[$key] = $data[$key];
//只有 GET里有的参数,才参与sig的计算
######开始生成签名############
//1: URL编码 URI
$url = rawurlencode($url);
//2:按照key进行字典升序排列
ksort($sign);
//3: &拼接,并URL编码
$arrQuery = array();
foreach ($sign as $key =& $val )
$arrQuery[] = $key . '=' . str_replace('-','%2D',$val);
$query_string = join('&', $arrQuery);
//4 以POST方式拼接 1、3 以及URL
$src = 'GET&'.$url.'&'.rawurlencode($query_string);
// ## 构造密钥
$key = $this-&config-&get('qq_appkey').'&';
//### 生成签名
$sig = base64_encode(hash_hmac("sha1", $src, strtr($key, '-_', '+/'), true));
if ( $sig != $data['sig'] ) {
$return['ret'] = 4;
$return['msg'] = '请求参数错误:(sig)';
$this-&output-&set(json_encode($return));
在此基础上,还可以做的严谨点:增加随机参数名、参数值。随机参数名、参数值由联运方随机生成,按照参数名的字符串所属ASCII码顺序排序,参数名、参数值均参与sign的计算,增加暴力破解密钥(app key)难度。增加回调验证订单号,金额信息。游戏充值服务器接收到充值请求时,反向到该平台回调接口,确认此笔订单有效性,以防止加密密钥泄漏的问题。远程文件引入 在网页游戏的研发中,多数都是使用框架来做,即使用REQUEST来的参数,作为请求文件名的一部分,来使用,那么很容易形成远程文件引入的漏洞。在我们之前的游戏中,曾出现过一例这样的漏洞问题。// Load the local application controller
// Note: The Router class automatically validates the controller path.
If this include fails it
// means that the default controller in the Routes.php file is not resolving to something valid.
if ( ! file_exists(APPROOT.'controllers/'.load('Router')-&getDirectory().load('Router')-&getClass().EXT))
load('Errors')-&show404('Unable to load your default controller.
Please make sure the controller specified in your Routes.php file is valid.');
include(APPROOT.'controllers/'.load('Router')-&getDirectory().load('Router')-&getClass().EXT);
load('Benchmark')-&mark('load_basic_class_time_end');
从代码以及案例图中,可以看到对于REQUEST的参数没有过滤处理,直接作为文件名来include引入的,故导致这种问题,类似上页图中QQ群网站的漏洞。若PHP version & 5.3.4 ,还会发生Null(%00) 截断的问题,带来更大的安全问题。在我们新的项目中,我们更改了实现方式,我们游戏所有接口都会走gateway,gateway里,对控制器名做类名规范的检测处理,再在指定几个目录下做autoload加载文件,且还会对REQUEST的类名、方法用ReflectionClass反射类的处理,检测到类、方法、参数是否合法。一来避免『远程文件引入』漏洞问题,二来便于前后端联调时,抛出更详细的异常,方便调试。下面为参考代码:require_once CONFIG_PATH . "/auto.php";
spl_autoload_register("__autoload");
//默认消息格式
$view-&clear();
$view-&error(MLanguages::COM__INVALID_REQUST);
$msg = new Afx_Amf_plugins_AcknowledgeMessage($val-&data[0]-&$messageIdField);
$msg-&setBody($view-&get());
$message-&data = $
$a = new Yaf_Request_Simple();
$a-&setControllerName($method[0]);
$a-&setActionName($method[1]);
$objC = new ReflectionClass($method[0]."Controller");
$arrParamenter = $objC-&getMethod($method[1]."Action")-&getParameters();
$arrRequest = isset($val-&data[0]-&body[0]) ? (array)$val-&data[0]-&body[0] : array();
$bCanCall =
foreach ($arrParamenter as $objParam)
$parm = $objParam-&getName();
$bIsOption = $objParam-&isOptional();
//是否为可选参数
if (isset($arrRequest[$parm]))
$a-&setParam($parm , $arrRequest[$parm]);
elseif ($objParam-&isOptional())
//可选参数
$bCanCall =
if ($bCanCall)
$rp = $app-&getDispatcher()-&dispatch($a);
$msg = new Afx_Amf_plugins_AcknowledgeMessage($val-&data[0]-&$messageIdField);
$msg-&setBody($view-&get());
$message-&data = $
SQL 注入SQL注入原理、方式,跟普通web应用一样,没什么特别的,在使用REQUEST来的参数时,过滤处理即可。可能在消息格式,以及注入操作简便上,会蒙蔽研发人员的眼睛,被忽略掉了。比如我们项目的AMF消息格式,在前端界面没出来之前,我们后端程序员一般使用Pinta来模拟操作,调试程序。前端界面出来之后,会使用Charles proxy来捕捉http请求。在这些过程中,请求接口、参数的构造,没有普通web那么简单。研发人员也容易忽略对请求参数的过滤,故很容易形成这种问题。防御方式做过滤处理,或SQL预编译。SQL 注入产生为了提高游戏服务器的吞吐能力,网页游戏的架构也是一直在演变的。在之前以Mysql作为数据存储的webgame架构中,其他节点都是可以水平扩展,或者说依赖简单粗暴的增加服务器来解决,单单作为唯一数据存储中心,不能这么做。为此,很多webgame的数据存储改用Nosql来代替,甚至java、C/C++的游戏数据,直接在内存中操作,游戏关服时,才写入到DB中。故SQL注入的问题,也会越来越少。通讯协议与消息格式网页游戏虽然名字叫网页游戏,但通讯协议并非全是http,也有很多使用socket,以及http+socket并用的做法。我们是http协议+amf消息格式,以及socket并用来实现。在http与https的取舍上,我们考虑到ssl的启用后,大量的ssl解密加密运算,势必会增加服务器大量的CPU计算压力。而传输的内容,多数是游戏业务的操作,响应,是能接受被监听嗅探的行为的(认证信息除外)。站在安全角度,这不能理解。但站在产品角度,考虑一下 投入产出,然后选择http通讯,也是可以理解的。socket在我们游戏中,除了在聊天应用上使用外,在一些组队、帮派战之类需要多个玩家之间同步数据信息时,我们也会使用socket来推送数据。在使用socket作为所有业务传输的协议时,协议格式一般都是开源协议,比如msgpack、protobuf之类,或者自定义的协议。使用自定义协议时,务必检测整个消息包的每一个参数,类型范围,避免个别超大数值、边界数值出现,导致主程序内存越界,以至于服务宕机,无法正常服务的情况发生。金币复制-整型溢出上周周六开周会时,听到其他项目组的一个关于整型溢出导致产生刷金币的问题。在这里,我抽象该案例,分享一下。商城出售开启背包格子的所需道具『梧桐木』。在游戏中,用户包裹格子数量一般都会作为一个收费点,一款游戏的格子大约为每行7格子,一共8行这样。比如前面3行是默认开放的,第4行是收费的,而且第一个格子所需品梧桐木的价格1个银子,第二个梧桐木是2个银子,第三个是4个银子。依次类推,意味着这些梧桐木的价格总和其实就是一个第一项为1,公比为2,项为35的等比数列。 当用户选择购买梧桐木数量大于31时,比如32-36中这些数字时,这些等比数列的和就是大于。(只是举例,实际上不会以这样的价格出售物品)在java中,4字节的存放int型变量的范围是-至。在java、c的有符号int型中存储时,数的最高位描述符号位,4字节共32位,除去最高位的符号位,剩下31位,每个位上能表示2个数字,4字节的有符号的整数表示范围为:负整数2^31个,范围为『-1至-』;正整数2^31个,范围为『至1』。 比如下图(注意十进制数字跟二进制表示的变化顺序):当开启格子数字为大于31时,比如32,那么所需费用就是个银两,再买点其他物品,凑成超过的数字,比如又买了3个银子的其他道具,总共花费个银子,在4字节的有符号int中表示出来的结果,变成符号位为1,即负整数。数值位为00 ,也就是00 ,对应十进制的-。程序逻辑上,再判断现有银两是否足够支付此笔花费时,是通过的。当使用当前余额减去这笔花费时,将变成减去一个负数,那么实际上就是加上一个正整数。变成了自己银两账户余额的增长。而余额字段类型是long,则正确的存储了这些余额,溢出漏洞被利用。在C中,使用无符号的数值类型,即可完成数值类型溢出刷钱的行为,但在java中,好像没有无符号的类型。这也可以先确定所有参与计算的数值必须为正整数作为必要条件(游戏业务特性,游戏内所有数字,肯定全为正整数,甚至都不包括零),先做大小判断,再做正正相加,不能得负;负负相加,不能得正。来判断是否发生了溢出问题。金币复制-并发请求Rpg类型的网页游戏中,多数都有道具出售的功能,直接卖到商店,以及道具材料从商店买入功能。当玩家同时针对买入、卖出两个操作,瞬间大量并发请求时,在服务器的处理逻辑一般有分别的两个进程处理,共享数据分别数据库中的对应账户余额表,如下图://卖出
// startTrans
$iBalance = $obj-&getBalance('user1');
//UPDATE `role_gold` SET gold = 150 WHERE role_id = 1
if(!$obj-&setBalance('user1',$iBalance + 100))
//rollback
//扣除物品
if (!$obj-&delItems($items))
//rollback
// startTrans
$iBalance = $obj-&getBalance('user1');
//UPDATE `role_gold` SET gold = 0 WHERE role_id = 1
if(!$obj-&setBalance('user1',$iBalance - 50))
//rollback
//发放物品
if (!$obj-&addItems($items))
//rollback
卖出请求的处理进程为1,买入请求的处理进程为2。在进程1还没将结果写入到DB时,进程2也从DB读取到余额为50。这是,两个进程拿到的余额信息都是50。进程1按照逻辑代码,计算出剩余余额是150;进程2计算出的剩余余额是0。最后,不管那个进程最后写入余额,都是错误的结果。(注:这里的代码逻辑操作,跟mysql事务无任何关系,事务只能保证单个进程的事务范围内多条语句都正确执行,或回滚。比如能保证扣钱成功,且物品删除掉的两个语句都正确执行。能保证其中之一的语句执行失败时,都正确回滚。)其实,在事物开启时候,SELECT语句是否可以取到最新的数据,或者是否需要等待锁释放,取决于MYSQL的事务隔离级别。在MYSQL的事务隔离级别中,有一下几种隔离级别:READ-UNCOMMITTED(读取未提交内容)级别READ-COMMITTED(读取提交内容REPEATABLE-READ(可重读)SERIERLIZED(可串行化)对于READ-UNCOMMITTED,可以读取其他事务中未提交的数据,而且据说性能还高不到哪里去,几乎没有在实际应用中使用;对于READ-COMMITTED,在同一事务中,会因为其他事务随时可能有新的commit,导致同一select可能返回不同结果。这个也不适合游戏业务;再说第四个SERIERLIZED,只要事务开启,所有其他查询,均排队等待该事务提交之后,对于上面提到的卖出买入情况,第二个事务的SELECT操作,不会立刻返回,会处于锁等待状态,一直到前一个事务结束。这个隔离级别,虽然能避免上面的问题,但性能较差,一般不会去使用。而REPEATABLE-READ隔离级别,也是mysql默认的隔离级别,从功能上,比较符合游戏业务需要,也应该是广大webgame架构中mysql的默认隔离级别。对于这个问题,你可能很快就给出解决办法,把UPDATE语句改为UPDATE `role_gold` SET gold = gold
+ 100 WHERE role_id = 1或者UPDATE `role_gold` SET gold = 150 WHERE role_id = 1 AND gold = 100来解决,但这种多个事务同时操作修改多个表的多条记录时,还容易引发死锁问题,比如:
而且,当条件为跨表内数据是否存在,或者另外条件不在MYSQL中,而在其他网络接口的响应中时,如何做呢?金币复制--逻辑漏洞引用DNF的漏洞新闻 《利用网游漏洞狂刷游戏币赚钱 玩家自曝3天赚17万》玩家曝出刷币漏洞 一个游戏道具可刷400人民币该漏洞到底是什么?原来游戏中“云幂袖珍罐”这个道具,可以开出2件一样的游戏装备,还有极少几率开出游戏币,开出的装备不值钱,但如果开出金币了,则分为5000万、8000万以及1亿游戏币。而1亿游戏币,按正常市场行情,可在交易网上卖400多元人民币。据玩家称,在游戏中,角色的装备是需要用包裹来存放的,不过目前角色的包裹最多只有48格,也就是只能存放最多48件装备。漏洞就是利用包裹的有限空间,存放47件装备(存放满了又无法开罐子),只留下一格空位,而在开“云幂袖珍罐”出装备时,就会因包裹空间不足,而导致开罐失败,而罐子还存在。玩家继续开罐,直到出现金币,但金币不会占据包裹的空间,因此开罐成功,然后罐子消失。发现这个漏洞后,部分玩家狂刷游戏币,然后马上在第三方交易平台出售游戏币,兑换成现金。这种问题,都是研发人员逻辑不严谨导致,这种问题,也较难发现。规避方式可以依赖下面提到的『运营数据监控』。道具复制--背包整理跟上面的卖出、买入一样,同时穿装备、整理包裹。在设计时,可能会将身上装备设计在装备表中;将不在身上的装备,设计到背包表中。当同时进行穿装备跟整理包裹的请求并发时,也会发生跟上面卖出,买入的情况,线程1读取DB,发现包裹里有这装备,然后准备删除背包表的这条记录,当准备写入到装备表时,另外一个整理包裹请求的线程来了,读取了整个背包表,进行道具的合并、排序。这时,之前的线程将这个装备写入到装备表,并删除了背包表里的数据,并提交事务。这个穿装备的所有操作都是合理、正常,且正确执行的。但另外一个整理背包的线程读取了之前的背包表里的数据,包括那件被穿上的装备。在游戏中,整理背包需要对可堆叠道具做堆叠操作的,意味着需要合并多个道具,删除部分道具。这意味着这里的操作,当前cgi线程的内存中的数据,将都会以覆盖的形式,写入到DB中,那么意味着,之前被穿到身上的那件装备,也会重新被写入到背包中。那就变成两张表里出现了两个相同唯一ID的相同属性的道具。玩家就可以把背包中的这个道具出售给其他玩家。在java或者C之类程序中,数据放内存中的游戏,也会存在这个问题,除非做读锁,但读锁会带来锁等待,锁等待会导致线程被占用,阻塞后面请求的处理,堆积大量请求。导致系统负载升高,服务器繁忙,以至于无法响应。好了,大约理解道具复制的形成原因了吗?这个问题,我们从根本原因想想,问题到底出现在哪里?如何规避呢?细心的同学不难发现,对于穿装备的操作结果,会对下一个请求产生影响的,当前操作未得到服务端响应之前,服务端是不能处理下一个响应的。对此,我们做了响应处理锁--『用户并发请求锁』。用户并发请求锁的实现,php中session以文件形式存储时,php会对session文件加锁,不释放(如果不特意执行session_write_close),知道当前响应完成。另外一个线程才可以正常读取,这简介的形成了单个用户的并发请求锁,但是,后面的进程一直处于等待状态,也会占用一个php-fpm进程,阻塞其他用户的正常请求对php线程的使用。为此,我们使用NOSQL的K-V形式结构,以user_name为key的形式,实现用户并发请求锁,比如 redis的setnx接口,原子性判断操作有则返回false,,没有就添加一个,返回true。那么,对于下一个请求,setnx时,返回false,有这个key了,那么立刻抛出异常,结束响应,FLASH根据异常内容,提醒用户不要进行恶意操作。即不会发生并发请求,又不会阻塞请求处理。同时,在请求结束的析构函数里,对这个锁进行删除操作,不影响下一个正常请求。若因为程序异常,发生语法错误,导致析构函数没法执行,没有删除用户锁时,可以在生成锁的时候,设置过期时间,比如5秒,甚至2秒,利用nosql的过期机制,实现用户解锁,避免用户长时间无法正常游戏。类CC攻击-多用户共享资源锁的timebomb我们现在研发的项目,是以NOSQL Redis作为DB,来存储数据的,redis并没有成熟的事务处理机制,watch甚至算不上关系型数据库中的事务处理。对此,更需要对表进行加锁解锁。java之类语言的项目,很多都是直接操作内存的,更是需要资源锁,来解决并发问题,解决多个请求操作同一份数据的问题。公司有另外一个项目,出现过一次因为锁的颗粒度较大,带来的锁等待timebomb的问题,也导致了线程繁阻塞忙,请求堆积,系统负载上升,导致宕机的问题。这个项目的锁是针对所有用户的锁,每个用户的请求发来时,当前线程会对所有用户的数据加锁,直到响应完成,才释放掉。这么做,是为了解决因当前操作,会影响到其他用户数据,比如多人PK,多个玩家之间的交互。当其他请求一并发来时,那么资源会立刻被锁住,直到上一个请求结束,才释放锁,那么其他线程都处于等待状态。用户基数小时,是看不出来锁带来的影响的,内存操作都比较快。当用户基数大时,或者说请求数增大时,后面的请求的等待时间会越来越长,超过webserver的等待时间,直接返回timeout,不能正常提供服务。这种问题的发生,是因为锁的颗粒太大了,不应该将所有用户都锁住,最好细化到当前请求所影响到的单个用户,只锁住单个用户的数据。这样,才减少timebomb的发生。另外, 提到很多webgame 的前端做了判断,而后端没做判断的问题,这种问题,实属不该存在。在我们的项目中,后端做的验证判断,远比前端多的多。有时候,为了界面上的动画表现,前端flash一般会在用户操作之后,立刻渲染,然后,再根据后端响应,决定是否继续做界面元素改动。比如脱装备,玩家操作时,会先渲染装备从角色面板,跳到背包里的动画,然后,再根据后端响应结果,决定是否回滚动画。这样,避免显得操作后,一定时间的反映迟钝假象,以提高用户体验。当然,后端是一定会做判断的,判断角色背包是否有空格之类。现在的webgame研发,一般都不会存在前端判断,而后端不判断的做法了。如果有,也应该是个别遗漏情况。其他去年的time33算法的hash dos的问题,使用json消息格式的webgame一定要注意,php只是在接收请求时,做了最大数量的限制。但在json解码之后的数据中,是没有处理的。这里千万别忘记了。运营数据异常监控再完善的防御措施,都仍会有安全漏洞。适当的监控措施,也一定要有,监控等级、金币、游戏币、经验、珍贵物品的变化等等,一旦发现,立刻报警,在漏洞未扩散之前,第一时间去修复漏洞,以减少损失,维护游戏平衡。--------------------------------10-16 21:08补充---------------------日志日志系统一定不能漏掉,所有操作,必须写入日志,当安全事件发生后,可以作为各种数据回滚,交易纠纷处理的可靠数据。也是作为数据监控的最准确的数据来源。--------------------------------10-18 16:05补充---------------------补一个真实的故事。去年6月份,我们项目新上线一个系统,以及腾讯充值接口V2升级V3,涉及充值代码改动,研发测试、策划测试、QA测试完毕之后,上线到个别服务区,观察情况。每次新版本上线,整个项目组都会持续观察数据情况,尤其是充值总额, 10、50、100的涨,突然,总额下降了。充值总额下降了,这可是总额啊,只能增加,是不会下降的。肯定哪里有BUG,DBA直接看binlog,查充值记录相关的SQL语句,最后发现充值系统的sql语句为UPDATE table set gold_num = $num,is_pay =1 ,没有WHERE,没有WHERE啊,多么弱智的BUG,这尼玛能容忍么?肯定要拉出来,弹JJ弹到死。当我从SVN日志中看到涉及这个文件的修改者时,我立刻石化了,悄悄的修了bug,默默的上传......事情是发生了,原因很弱智。是我自己,忘记写where条件,由于框架封装了,问题并不容易被发现。而且自己测试充值都是正确的,包括后来的策划测试、QA测试,都没有发现问题。所属功劳,就是“数据监控系统“,所以,我们游戏开发商,第一时间,比用户还早的发现了问题所在。数据监控,一定必不可少。至于修复方案,那要感谢日志系统。每笔充值,都有双份日志,一是各个游戏大区自己的DB中。二是充值中心中。充值中心负责跟其他各大平台对接。这次的事故,影响游戏大区的数据,并未影响到充值中心数据,故可以有据可查。这样,伟大的DBA可以更便捷、放心的修复数据了。对此,不管发生其他刷钱、刷装备、盗号之后的交易纠纷,都可以依赖日志来做处理。日志系统,也一定必不可少。从新功能发布,到发现BUG,到修复BUG,总共历时不到1小时(svn时间可以看出来,16:30对外的),可想而知,数据监控的效果多么值得称赞。新功能上线时,各个测试环节要去做。按大区服务器,做灰度发布也可以更小的减少bug影响范围,减少损失。---------------------------------10月22日 更新------------------------------------------------协议与外挂本问题的目标是『网页游戏』,『网页』意味着的用浏览器。使用浏览器与服务器通讯的游戏,才能成为浏览器。而浏览器支持普通的http协议的基本网页数据通讯,支持以socket协议的flash插件或者java Applet实现,以及unity3D开发的游戏。就目前业界流行做法上,flash插件做客户端的占了一多半。unity3D的客户端源码安全性我不清楚。flash的源码,众所周知,很容易逆向出来。比如回答者 提到博客
中所写方式逆向还原出flash源码。当源码很容易被拿到后,那么通讯协议的消息格式,也是一览无余,那么各种外挂实现起来,易如反掌。 在我们项目中,对于外挂的态度,一般都是放在最后考虑。当项目前期,没有多少知名度,也没盈利时,我们开发商是不会把精力放到防外挂上的。而且,天下攘攘,皆为利往,同样的外挂编写者也会认为这无利,会无视它。当然,也不是无视外挂的存在,我们一般这么对待它:策划初期,减少重复性劳动的玩法,以免玩家感到疲劳,给与外挂市场。若重复性不高,那么外挂可用性也就差。游戏本身提供一些内挂,替玩家实现重复性劳动。前后端都是统一网关,后期实现协议加密也比较简单,快捷。抵挡住初级外挂编写者,当然,中国人才济济,大牛多多。定时更换通讯密钥,增加外挂编写者的劳动量。游戏内部机制限制,比如体力值。人肉判断,验证码之类(网页游戏目前还没火到这个地步)。其实,网页游戏中的最大、最多的漏洞,几乎都是游戏业务金币复制、装备复制等技术性漏洞,以及游戏业务判断不严谨、条件不合法之类的逻辑漏洞,而常见的web漏洞在网页游戏里,显得并不突出,种类数量也少,也较为容易发现,修复。=============================日更新================我不知道这个回答会不会还有人看到,因为这不是一个新的回复,不会出现在各位的消息提醒中,可能不会涨粉,但我觉得还是有必要在更新一下,希望以后通过搜索,看到这篇文章的同学,对你们有帮助。SO,我还是更新一下。又一起webgame中的刷道具的问题,问题发生在背包内道具移动的业务上:当从A位置移动到B位置时,若两者是同一类型,且可叠加(两者都是绑定或不绑定),则叠加数量到其中一个上,并销毁另外一个。若不是同一类型,或不可叠加,则两者呼唤位置。若目标位置为空,则把物品从A移动到B。如果这个功能由你看写,你如何写?程序员的代码在
* 背包内道具移动
* @param string $former
源位置格子号
* @param int $target
目标位置格子号
public function MoveItemAction($former, $target)
$former = trim($former);
$target = intval($target);
if(!$former || $target & 1)
return $this-&_view-&error(MLanguages::COM__PARAMETERS_NOT_LEGAL);
//参数异常;
//获取道具信息
$former_item = $this-&__mItems-&getNumberItem($former);
if(!$former_item)
return $this-&_view-&error(MLanguages::PACK__NOT_EXIST);
//使用道具不存在;
$former_md5id = $former_item['md5_id'];
$former_num = $former_item['number'];
$former_base = $former_item['item_id'];
$former_sup = $former_item['superpose'];
//开启事务
$this-&__mRole-&beginTrans();
$target_item = $this-&__mItems-&getNumberItem($target);
其出现问题部分就是如上这些,大家看代码时,会认为这前期的判断都是正确的,符合业务逻辑的,问题却发生了“来源格子”跟“目标格子”的判断,没有判断这两个参数是不是同一个位置,若是同一个位置,那么上面的所有业务逻辑判断都是合法的,下面的代码中,将根据这“两个”道具的属性进行堆叠,然后就发生了道具复制的问题.....修复方法想必大家都会,就是判断来源位置目标位置是否相同if(!$former || $target & 1 || ($former == $target)) //判断来源位置目标位置是否相同
如果是你,你会犯这样的错误吗?以上为鄙人的游戏研发经验,欢迎讨论。时间仓促,再加上感冒前期症状,轻微头晕,难免思维混乱,敬请谅解。 此回答禁止转载,代码高亮效果不理想,其他格式没有。鄙人BLOG中文章
可以转载,但务必遵循博客所示协议。 大神能给个赞么?葛大神点赞了,居然看到了,居然点赞了。内牛满面。
这个得游戏安全同学来回答更好,不过我说下我的一些hacking心得吧。网页游戏分两类:flash游戏与html游戏。flash游戏与服务端通信的消息格式有两类:1. 是flash特有的amf消息格式。这个格式是可逆的,一般外挂就会逆出这个格式,然后自动化。2. http协议,这个导致的服务端安全问题和普通的网站基本没什么区别,因为此时服务端都是nginx, lighttp, apache, tomcat之类,服务端语言是:php, java, python之类。我遇到的一些flash游戏,相关逻辑在客户端进行,缺乏服务端验证,直接导致我可以无限金币,无限装备…开发者以为flash那么厚,看不到运算逻辑,实际上要反编译出源码很容易,比如用swfscan,很多时候的攻击直接在浏览器中间人抓包拦截,就更容易了:)html游戏这个和服务端通信就是http了,如果用了html5,也许会用websocket。不过一般都是http协议,所以服务端安全问题和普通网站没什么区别。由于是html,在客户端上还可能出现XSS, CSRF等问题,这类客户端安全问题可能导致用户账号被劫持等问题。整体来说,搞网页游戏的攻击成本更低。最后补充下:早就被黑产盯上了。根本不用想,我最佩服黑产兄弟,他们比我们速度快N倍!
http://jysperm.me

我要回帖

更多关于 热门行业 的文章

 

随机推荐