Java OpenPeak Flash应用程序XMLSocket安全问题
我们正在尝试为OpenPeak创建一个应用程序。Flash应用程序将充当另一个域上另一台计算机上Java服务器的客户端 Flash应用程序客户端通过XMLSocket进行连接。Java服务器使用ServerSocket接收请求并发送回消息 为了信任服务器,Flash客户端需要一个套接字主策略文件来告诉它服务器来自可靠域。根据Adobe上的一篇文章,连接成功后,Flash客户端会自动请求端口843上的跨域策略或套接字主策略文件 尽管如此,即使我们根据已经阅读的教程和建议来实现它,Flash客户端仍然会抛出以下安全错误: 安全性错误事件 type=“securityError”气泡=false 可取消=假事件阶段=2 text=“错误#2048” 我们在测试期间尝试查看是否有对843端口的调用。没有 有趣的是,即使没有策略文件,Flash客户端仍然能够成功地将第一条数据消息发送到服务器。就在服务器试图发回回复时,整个过程会挂起大约10秒钟,然后才会显示上面的安全错误Java OpenPeak Flash应用程序XMLSocket安全问题,java,flash,actionscript-3,security,Java,Flash,Actionscript 3,Security,我们正在尝试为OpenPeak创建一个应用程序。Flash应用程序将充当另一个域上另一台计算机上Java服务器的客户端 Flash应用程序客户端通过XMLSocket进行连接。Java服务器使用ServerSocket接收请求并发送回消息 为了信任服务器,Flash客户端需要一个套接字主策略文件来告诉它服务器来自可靠域。根据Adobe上的一篇文章,连接成功后,Flash客户端会自动请求端口843上的跨域策略或套接字主策略文件 尽管如此,即使我们根据已经阅读的教程和建议来实现它,Flash客户端仍
有什么想法/建议吗?为了让flash访问另一个域,您需要一个crossdomain.xml文件,为此您可能需要指定一个自定义URL。以下是执行此操作所需的代码:
flash.system.Security.loadPolicyFile("{Url to my crossdomain.xml file on the SSL virtual root}");
下面是一个示例文件,它对使用此文件的域禁用flash的“同源策略”保护。强烈建议限制对特定域的访问,但对于某些应用程序来说,这并不总是可能的
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.*" secure="false" />
</cross-domain-policy>
以确保flash实际上正在下载crossdomain.xml文件。如果需要调试rtmp或其他非http协议,则必须使用Wireshark