[原创]Red5流媒体服务基于域的安全策略
公司出于业务扩展的考虑,准备把原先基于FMS为后台的程序,改为用开源的Red5作为视频音频服务,而由Socket作为数据交换服务。
公司服务端的人忙着处理其他事情,于是公司安排我做Red5的架设工作。在网上找了些资料,Red5配置起来还是比较简单的。网上的教程有一堆,这里就不累述了。
因为flash客户端用NetConnection连接Red5的时候,是不需要像连接socket或者是http那样要提交一个<request-policy-file/>的请求去请求一个crossdomain的字符串。
而视频,音频服务在我们整个服务中所占的IO是最大的。如果Red5服务没有做任何连接的验证,其他人通过反编我们的swf文件,得到我们的red5服务的地址后,就很容易让其他人来使用我们的服务器。
对于这种问题,通常可以使用连接Red5时,要求客户端提交一个由服务端生成的密钥来做验证,但是这样就涉及到Red5和Socket直接的通信问题(或者是通过查询临时表等方法),无疑会给本来已经事情很多的服务端的同事们增加麻烦。
于是我采取通过检测flash客户端的swf文件URL这种基于域的检测方式。