flash游戏服务器安全策略
2020-12-14 21:02:30 【

在网页游戏开发中,绝大多数即时通信游戏采用flash+socket 模式来作为消息数据传递。在开发过程中大多数开发者在开发过程中本地没有问题,但是一旦部署到了网络,就存在连接上socket服务器。究其原因主要是没有部署安全策略文件。在这里我主要说说flash策略文件部署。

1.flash安全策略文件格式

<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM  "/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>

  1.1 domain 请求服务来源地 可以是ip,也可以是域名 也可以是域名通配  eg: 192.168.1.110, www.***.com, *.foo.com

  1.2 to_ports 容许程序访问的端口 “*”代表可以访问的端口。当然为了安全起见个人建议填写能访问的端口。

2.策略文件的主要作用

   2.1 让跨域机器能访问当前服务器的资源。

   2.2 保护本机网络资源不被其余flash调用。

3.策略文件的部署方式

  3.1 部署一个http服务器在当前的服务器并在网站的根目录下放crossdomain.xml文件

  3.2 开一个843端口的socket服务器,专门处理用于发送crossdomian.xml 内容,发送完毕立即关闭socket 断开tcp

4. 游戏开发中处理

  4.1 一般在静态资源处理控制授权的时候,部署得有http服务器 这个时候一般采用在可访问的资源目录下存放crossdomain.xml

  4.2 在仅仅只有部署socket服务的时候一般采用843 端口处理策略文件。

  4.3 当游戏服务器中既有http服务 也有socket 服务的时候 也可以直接部署http 放crossdomain.xml。个人建议还是采用开843端口socket处理。flash启动的时候时候会默认先尝试连接843端口接收数据,然后在访问http根目录数据。导致socket连接缓慢给用户体验不是很好。

5.用erlang实现一个切实可用的socket 843服务器,整个实现过程我在 ranch实现游戏服务器 的基础上稍加改动即实现了。

  5.1 去掉 game_socket_app.erl 中     ok = game_socket_store:init(), 即可。

   View Code

  5.2 在 game_socket_server.erl 接收到客户端发送数据后发送策略文件,本文没有对客户端发送的数据做匹配。如果需要请自行处理。

   View Code

到这里一个可以用于实际生产环境的socket 843服务器就完成了。怎么样?简单吧!


】【打印关闭】 【返回顶部
上一篇网络游戏数据库服务器安全性分析 下一篇国内服务器选择的时候,常见的有..