游戏服务器的安全性问题(一)

游戏服务器在设计和实现上的安全性问题主要可以分为以下几个大类:

  • 协议安全
  • 流程安全
  • 数据存储安全

需要注意的是,安全性和效率以及流程的复杂程度往往是对立的,越是安全的系统,流程越是复杂,效率也越低。我们在游戏的开发过程中需要做出折中的选择,达到安全性和效率的平衡。

协议安全
协议安全所指的是网络数据包的安全,通常意义上讲就是指网络数据包的加密和解密,由于网络数据包传输频繁,如果使用复杂的加解密技术将会带来巨大的CPU开销,另外由于客户端程序内存有数据包加密和解密的完整代码,因此无论多复杂的加解密算法都不能阻止破解数据包事件的发生。建议对于游戏中的一般网络包不需要进行复杂的加解密过程,只对数据包进行简单编码或者不加密也是可以接受的。

阅读全文

深入浅出搜索系列之(一)- 初识搜索

信息检索场景

上周五快下班时,正在做一个系统的某个运营功能模块,很简单的一个功能,其中有个要求是,根据手机号查找用户信息,和前端同学联调接口的时候,他顺便闲问了一句,这个功能是通过SQL的like关键字完成的吧,我说对啊,就是这样做的,反正我们的数据量不大。接下来他说道,像 baidu,google,这样的产品是怎么做到在毫秒级别时间内从互联网海量数据中查询出我们想要的结果呢?要完成这样的工作,在一个搜索框的背后,那当然是一个工业级的技术体系去支撑。但是在这里,我想尽可能用我所了解的浅显的知识介绍下信息检索技术的基本原理,算个科普入门吧。

阅读全文

一种跨平台的App开发解决方案

目前移动应用商店中的大部分的App,都存在iOS和Android两个平台的版本,并且两个版本的UI,底层逻辑大致都相同。而相同的部分,却需要不同平台的开发人员实现两次。

  • UI部分,因为是与平台强相关的,所以目前只能依靠各个平台的开发人员来实现。
  • 逻辑部分,与平台无关,目前其实是有方案使得多个平台使用同一份实现的。
  • Google开源的J2ObjC,可以将逻辑部分的Java代码转换成Objective-C代码。J2ObjC使得Java代码可作为iOS应用构建的一部分,而且无需对生成的文件进行编辑。
  • Dropbox公司,实现了一个基于C++11的跨平台库,将核心的逻辑封装到库里面,提供接口供平台层调用,可以达到一次编写,iOS,Android上均可以运行。

通过对比现有的方案,我们也设计了一个跨平台的解决方案,基于C++实现,来解决不同平台上的逻辑需要重复实现的问题。 该方案命名为Core Component(以下简称CC)。

阅读全文

React系列之(一) ---入门篇

ReactJS是什么

ReactJS是Facebook内部的一个javascript类库,已于2013年开源,可用于创建WEB用户交互界。它引入了一种新的方式来处理浏览器DOM。那些需要手动更新DOM,费力地记录每一个状态的日子一去不复返了,你只需要声明式的定义各个时间点的用户界面,而无须关心在数据变化时需要更新哪一部份DOM.在任何时间点,ReactJS都能够以最小的DOM修改来更新整个应用程序。

ReactJS的由来

ReactJS发源于Facebook的PHP框架XHP的一个分支,XHP作为一个PHP框架旨在每次有请求进来的时候渲染整个页面,React的产生就是为了把这种重新渲染整个页面的PHP式工作流带到客户端应用中来。

阅读全文

蓦然回首万事空 ————空指针漫谈

在目前大多数的编程语言中,都存在一个很有意思的特殊的指针(或者引用),它代表指向的对象为“空”,名字一般叫做nullnilNone, Nothingnullptr等。这个空指针看似简单,但它引发的问题却一点也不少,空指针错误对许多朋友来说都不陌生,它在许多编程语言中都是非常非常常见的。用Java举例来说,我们有一个String类型的引用,String str = null;。如果它的值为null,那么接下来,用它调用成员函数的时候,那么程序就会抛出一个NullPointerException。如果不catch住这个异常呢,整个程序就会crash掉。据说,这一类问题,已经造成了业界无法估量的巨大损失。

阅读全文

高质量Android开发系列之(一)-Android夜间模式最佳实现

由于Android的设置中并没有夜间模式的开关,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体检。当前越来越多的应用开始把夜间模式加到自家应用中,相信不久google也会把这项功能用到Android系统中吧。

对当前夜间模式的实现,大概有三种方法如下:
1、通过设置不同的theme来实现夜间模式的UI变化
2、通过id获取资源时,将该id转换为夜间模式对应资源id然后再去获取资源
3、更新Resources的Configuration中的uiMode来更新Resources的夜间模式开关
下面我来简短的描述下前两种方案的实现,及第三种方案的实现原理

阅读全文

高质量服务端之路(—)—Docker微服务架构实践

我们在后台架构设计中经常会将较大的系统进行微服务化。这种架构的优势是显而易见的:模块化的开发和维护相对要简单很多,每个服务可以采用不同的技术去构建,团队的分工协作能力也能够得到最大的发挥。然而微服务架构同样也带来了一些麻烦,比如运维的复杂度较高,数据的一致性等问题。我们认为实施高质量的微服务架构至少需要解决以下三个问题。

阅读全文

本站总访问量