2010-11-02 59 views
2

如何禁用crossdomain.xml检查当执行swf已加载本地主机上?如何绕过闪存跨域安全

Error #2044: Unhandled SecurityErrorEvent:. text=Error #2048: Security sandbox violation: http://localhost:2541/xxx.swf cannot load data from http://www.com/xxx.swf. 

我想为本地运行的HTML5 Web应用程序分配完全信任。我想禁用任何跨域检查。

为什么? 某些外部服务器不为其托管的SWF文件提供crossdomain.xml。 我在本地运行。我想完全信任调试目的。

我该怎么做?

我不会考虑AIR,因为它不能在HTML5应用程序中使用。

将URL“http://localhost:2541/xxx.swf”添加到“C:\ Users \ Arvo \ AppData \ Roaming \ Macromedia \ Flash Player#Security \ FlashPlayerTrust \ u.cfg”没有帮助。

编号:

  1. http://www.abdulqabiz.com/blog/archives/2007/03/20/flash-player-trust-flashplayertrust-on-gnulinux/

  2. Running a SWF from file:/// without having the user change their Flash Player security settings

+0

你能解释一下你想做什么吗? – 2010-11-02 16:57:19

回答

2

使用本地服务器代理远程地址。假设你想连接到:

http://someserver.com/whatever 

然后做出一个电话:

http://localhost/proxy/someserver.com/whatever 

,并在本地服务器应用程序进行实际的远程调用和代理的响应。

+0

这不会工作,如果加载的SWF想要跟其网络服务器 – zproxy 2010-11-02 17:05:07

+0

@zproxy,你是什么意思?你从它的web服务器加载swf,你可以回到它自己的web服务器。如果你需要从其他Web服务器获取某些内容,请让swf的Web服务器为swf获取它。它会工作。 – 2010-11-02 17:06:49

+0

将需要尝试一下:) – zproxy 2010-11-02 17:11:11

0

我相信你需要的文件的本地路径添加到.cfg文件,而不是路径使用的是访问它。所以,你会放/location/of/xxx.swf.cfg,而不是http://localhost:2541/xxx.swf

+0

HTML5应用程序正在通过本地主机的HTTP加载SWF。 swf没有磁盘上的路径。 – zproxy 2010-11-02 16:47:49

+1

然后在这种情况下,正如你所说,你将无法绕过这些限制。 – 2010-11-02 16:49:00

2

如果你是预览在Flash中的swf,没有跨域限制。如果你真的在浏览器中查看它,但是(例如,本地web服务器),它就像其他任何东西一样受到限制。您必须将crossdomain.xml文件放在另一个站点上,或让策略服务器使用主策略监听端口843。

+0

没有选项。我想闪光灯禁用检查。个人电脑在我的控制之下。 – zproxy 2010-11-02 16:49:47

+0

然后制作一个本地代理来获取它并取而代之。规避Flash的沙箱不是Flash设计的目的,它允许您在以下两种方法之外进行操作:crossdomain.xml或策略服务器。 – mway 2010-11-02 16:51:29