游戏测试的时候,常用到“白名单”,白名单是什么?游戏内为什么要有白名单?如何生效和使用?针对这几个疑问进行说明
白名单是什么?
白名单和黑名单的概念相对,两者都是访问控制策略。
黑名单是指设置无法通过限制的用户,黑名单之外的用户的正常使用不受影响。
白名单是指设置可以正常通过的用户,除白名单外的用户都无法通过限制。
从控制力度上来看,白名单限制的用户更多,控制更严格
游戏内为什么要有白名单?
游戏的研发到上线,有多种游戏运行环境:开发本地研发环境(本地服务器)、研发测试环境(测试服务器)、模拟线上服务器(preonline服务器)、线上服务器(online服务器)。
其中,线上服务器是对外开放运营的,会有大量的外部玩家连接使用。
当有服务器停服更新维护时,就需要使用白名单以达到先于玩家进入游戏进行功能验证的目的。所以白名单也可以理解为测试工具的一部分
如何生效和使用?
游戏白名单一般有两种方式:IP白名单和账号白名单
游戏服务器
提到IP和账号白名单的设置和区别前,先说明一下游戏服务器。
对于普通用户而言,对于游戏访问服务器过程如下图,服务器指代了游戏服务、服务器本身,或者根本没有两者的区别。
但是实际上,游戏服务器不是一个单一进程运行在机器上,游戏服务器应该理解为是多个服务进程共同配合运行在服务器上,对于游戏逻辑的访问来说如下
IP白名单生效在玩家进入游戏服务之前,账号白名单则在登陆服务上生效
IP白名单
ip白名单由运维在nginx服务器上直接配置,如只对公司内部部分网络开放,其他IP均不开放,则如下设置。启用后配置对此台服务器的所有访问生效
allow 192.168.0.1/24;
deny all;
如果同台服务器上有多个游戏的业务,则在server内通过server_name区别,根据不同的游戏业务来进行访问控制
server {
listen 80;
server_name login_server;
allow 192.168.0.1/24;
deny all;
location / {
root /usr/share/nginx/html/test;
index index.html index.htm;
}
}
*以上ip配置以nginx服务进行原理说明,实际IP配置需要结合具体的游戏使用的服务
账号白名单
账号白名单一般在游戏研发侧配置,维护一个可登陆的账号名单。
当玩家通过IP限制,连接到了登陆服务,便开始进行登陆验证。
验证时,判断玩家的账号、角色ID是否在开放名单内,在白名单内账号则可验证可以正常登陆进入游戏服务器开始体验游戏内容