棋牌游戏如何抵御外挂和恶意攻击

看点1:DDoS(注意,o要小写)


DDoS只是流量攻击的一个总体称呼,直接百度 DDoS 就可以获得答案。 一般个人攻击者可以发起 50G ~ 100G 的流量攻击。 一些团队可以发起 200G+ 的流量攻击,当然还有一些可以做到 400G+、600G+、800G+、1T+等。


在这里首先要说明的是,从理论上而言,DDoS是防不住的。 你今天能防住1T,明天别人就可能打你2T。

但好在,现实并没有那么走运,攻击也是有代价的。因此,如果遇上600G、800G,甚至是1T的瞬间流量攻击,我觉得你可以发一个朋友圈,说明你已经走上了人生巅峰。


唯一的解决方案:硬防。所谓硬防,就是指硬件防御。


基本原理就是在自己的机房入口设备,比如路由器上,通过分析包的类别、源地址特征来进行DDoS 识别。 一但识别源地址为 DDoS 行为,就更改数据包地址,将其引导到流量清洗设备上。

从上面的原理中可以看出,机房的流量清洗设备能够吞下来的流量,就是你的最高防御上限。


早期是这么干的。如今,我们有阿里云、腾讯云。如果觉得贵,那佛山、宿迁的一些高防机房也可以用。

机房有两种:

一种是BGP 机房 ,这种机房是多线合一,对外只提供一个 IP。 防御一般是 200G 的单台上限。 如果想要更多的防御,就要和业务商谈,业务好为你的主机重新布线。

另一种就是普通的机房。这种机房,也是多网通,不过,电信、网通、教育网之类会有单独的IP,这种的防御可以做到 300G 左右。 同样的,想要更高,就只有业务商谈后,专门为你处理。

多个IP,如何提供给客户端呢?最好的策略就是智能 DNS 域名解析,它会帮你解析到适合当前用户的 IP。


总结一个字:钱!


如果我们想要防御上T 的攻击,曾经咨询过一个第三方机房,大概是 10 万一个月。 对于一些月流水上千万的游戏来说,这个数字无所谓。但对于起步阶段的平台来说,就是天价了。 那我们有没有办法少花点钱呢?


大家首先想到的就是分布式了。没错的,能够想到这个的,都是杰出少年,哈哈!

如果我们用4 台 300G 高防的并联,自然就是 1.2T 的防御。 除非 4 台同时被打死, 否则我们还是有余地的。


细心的朋友就会问了,4 台,就有 4 个 IP 地址。如何来做呢?其实这个就交给客户端好了。如果客户端掉线了,就遍历 4 个地址,选择一台可以用的来用就是了。

这4 台,不见得要负载均衡。 因为我们要的是保证玩家在受攻击的时候,有可用的服务器可用,而不是要通过负载均衡来提升承载。 什么? 你的平台同时有几万人在线?那好办, 你用 10 台 1T 防御的做网关就好了。


看点02:CC(伪造数据包)


DDoS 常见的套路有几种1、发起超多长链接(针对长链接服务器),侵占服务器 IO 资源2、发起超多数据包(长短链接都可用)3、伪造数据包( CC)


前面两种比较好防御,因为高防服务器自动就可以识别。实际上,成本最低、伤害最大的,要算CC 攻击。

CC 攻击主要的套路有几种

1、抓包重放通过软件抓取客户端向服务器发送的合法流量包,然后无脑的多次发送。比如,我们抓一条拉取游戏历史记录的信息,然后无脑发送。大家应该能够想到,可能存在的情况。

一、如果历史记录是从数据库中实时统计。那么会使数据库服务器的查询和流量溢出。常见的就是MYSQL 等数据库进程 100%

二、如果历史记录是缓存到内存中的,那么至少也会产生放大攻击效果。放大的倍数就是返回包大小/ 请求包大小。重放攻击的防御手段,大家可以自行百度了,选择一个适合自己的方案即可。


2、SQL注入SQL 注入很简单,我演示一下。 SELECT * FROM history WHERE userid = $userid. 假如,这个 $userid 是由客户端传过来的,那么我们面临的问题就是这个 $userid 可能不是你期望的整型。


比如可能出现下面的情况(加粗的部分就是$userid 的值)


SELECT * FROM history WHERE userid = 12346 or 0 union select concat_ws("|",cast(orderid as char),ifnull(operator,""),ifnull(target,""),cast(ifnull(num,0) as char),cast(ifnull(time,0) as char),ifnull(note,""),cast(id as char),ifnull(account,""),cast(ifnull(goods_type,0) as char),cast(ifnull(goods_num,0) as char),cast(ifnull(goods_price,0) as char),cast(ifnull(price_type,0) as char),cast(ifnull(time,0) as char)),1,2 from t_log limit 0,1 -- "


这条SQL 语句调用了 N 个 concat_ws,cast,ifnull 等 SQL 函数。试图消耗 MYSQL 数据库进程的 CPU 以及产生大量的查询结果返回。


SQL 注入的防御,需要大家做好客户端传入的值的效验,特别是拼接 SQL 语句的时候,要格外注意可能出现的问题。


3、破解破解意味着攻击方知道你所有的业务逻辑,这是最难防御的。但大家应该假设这样的可能出现,因为在高手面前,我们的加密,混淆几乎等于0。

要想防御到这一步,就只有合理的规划好代码,每一个请求都严格效验。举一个打牌的例子,如果你明牌能赢。才表示你真的赢。


看点03:结束语


我的阅历有限,只能在此抛砖引玉,引起大家共同讨论。不管是棋牌游戏,还是普通游戏,都应该重视安全防护这一块。不要让自己本应该赚到手的钱,消失在大量的攻击中!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 一、从web容器日志入手: 查看并筛选日志 这行命令会将access.log文件中包含wp-admin、wp-lo...
    红色火苗阅读 3,375评论 0 0
  • F-22“猛禽”(英语:F-22 Raptor)战斗机是由美国洛克希德·马丁和波音联合研制的单座双发高隐身性第五代...
    白语金言阅读 555评论 0 2
  • 是我在变?还是你们在变?还是我们都在变?我们没有了小小童年的无忧无虑,我们有了烦恼,我们有了嫉妒,成了小叮当,我们...
    14小石头吴思齐阅读 108评论 0 0
  • 自己书丢了,然后拿舍友没有写名字的书写上自己的名字就成自己的了?还要理直气壮的告诉舍友这本身就是我的,待自己书找到...
    Msint赵客阅读 141评论 0 0
  • 我有个远房表姑爹,以前在我们那小镇上几乎人人识得,原因有二:一来他写得一手好字,奇怪他文化不高,但是字儿却写的十分...
    f5120924cbd9阅读 501评论 0 1