gpt4 book ai didi

java - OpenPeak Flash 应用 XMLSocket 安全问题

转载 作者:行者123 更新时间:2023-12-01 05:57:27 24 4
gpt4 key购买 nike

我们正在尝试为 OpenPeak 创建一个应用程序。 Flash 应用程序将充当另一个域中另一台计算机上的 Java 服务器的客户端。

Flash 应用程序客户端通过 XMLSocket 连接。 Java 服务器使用 ServerSocket 接收请求并发回消息。

为了信任服务器,Flash 客户端需要一个套接字主策略文件来告诉它服务器来自可信任的域。根据Adobe上的一篇文章,当连接成功时,Flash客户端会自动在843端口请求跨域策略或套接字主策略文件。

尽管如此,即使我们按照阅读过的教程和建议来实现它,Flash 客户端仍然会抛出以下安全错误:

SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"

我们已经尝试过logging the policy file request在测试期间查看是否有任何对端口 843 的调用。没有。

有趣的是,即使没有策略文件,Flash客户端仍然成功地将第一条数据消息发送到服务器。只是当服务器尝试发回回复时,整个事情会挂起大约 10 秒,然后才会显示上述安全错误。

有什么想法/建议吗?

最佳答案

为了让 Flash 访问另一个域,您需要一个 crossdomain.xml 文件,对于此特定需求,您可能必须指定一个自定义 URL。这是您需要执行此操作的代码:

flash.system.Security.loadPolicyFile("{Url to my crossdomain.xml file on the SSL virtual root}");

下面是一个示例文件,它对使用该文件的域禁用闪存的“同源策略”保护。强烈建议限制对特定域的访问,但这对于某些应用程序来说并不总是可行。

<?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>

为了调试这个,我将使用 TamperData确保 flash 确实正在下载 crossdomain.xml 文件。如果您需要调试 rtmp 或其他一些非 http 协议(protocol),那么您必须使用 Wireshark。

关于java - OpenPeak Flash 应用 XMLSocket 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com