【问题标题】:Flex HTML Post Error - Security Problem?Flex HTML 发布错误 - 安全问题?
【发布时间】:2010-12-05 23:48:49
【问题描述】:

我创建了一个 swf,用于发布一些 HTML 帖子。当我在本地运行和编译 swf 时,它成功地向我的域上托管的我的 php 代码发布帖子。但是,当我随后将我的 swf 上传到我的域,然后更改 embed 标记以具有到我的托管 swf 的完全限定路径时,该 swf 将正确加载,但它会将任何 HTML 帖子发送到我的 PHP 脚本。我有一个带有完全限定 url 的 embed 标记的原因是,我的目标是能够将 html 嵌入代码放置在许多不同的站点上。

我让它在一个远程站点上工作,它有一个通配符 crossdomain.xml 文件。但是,当我尝试将 crossdomain.xml 应用到任何托管站点或本地计算机时,当我使用带有完全限定 URL 的嵌入时,如果我只是计算机上本地托管的 swf,则 HTML 发布工作不会运行正好。

我觉得这与 crossdomain.xml 文件有关,但是我想我不了解安全模型的某些方面。

所以我的目标是能够将嵌入 HTML 代码与完全限定的 swf(例如,“http://www.abc.com/myswf.swf”)粘贴到许多其他网站上并拥有它在我的主页 (http://home.com) 上发布标准 HTML 帖子。

感谢您对此提供的任何帮助。我太接近了,就像我说我让它在一个远程站点上工作一样,但我不确定如何。我发布嵌入代码的所有其他网站都失败了。

【问题讨论】:

    标签: apache-flex flash crossdomain.xml


    【解决方案1】:

    好的,我正在按照您刚刚给出的示例编辑我的答案。

    根据我得到的错误报告,问题在于不允许从 swf 到托管 swf 的站点的 ExternalInterface 调用。

    它在第二个示例中有效,因为调用是在同一个沙箱中进行的。

    取自文档:

       SecurityError — The containing environment belongs to a security sandbox 
       to which the calling code does not have access. To fix this problem, 
       follow these steps:
        In the object tag for the SWF file in the containing HTML page, 
       set the following parameter:
       <param name="allowScriptAccess" value="always" />
    
       In the SWF file, add the following ActionScript:
       flash.system.Security.allowDomain(sourceDomain)
    

    您可能还需要检查嵌入代码中的 allowNetworking 参数...

    【讨论】:

    • 不幸的是,这不是一个选择。我没有将 swf 上传到每个站点的选项。这是正在发生的事情的实时示例......所以这里是外部站点的链接,它无法与 PHP 脚本通信。 ryan.d3-systems.com/?p=148 这是完全相同的脚本,securedmark.com/demo.php。你可以看到我在ryan.d3-systems.com/crossdomain.xmld3-systems.com/crossdomain.xml 都有一个crossdomain.xml。所以我无法弄清楚我在这里做错了什么,因为它在托管网站上运行良好。
    • 这正是问题所在。非常感谢 PatrickS,我不敢相信我错过了。
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多