gpt4 book ai didi

Flash:我可以禁止 ExternalInterface 访问加载的 SWF 吗?

转载 作者:行者123 更新时间:2023-12-03 22:27:53 25 4
gpt4 key购买 nike

我们有一个 Flash 应用程序 (AS3)。
这是一个在我们自己的投影仪中运行的桌面应用程序。
没有空气。
投影仪是用 C++ 编写的。
投影仪通过 ExternalInterface 让 Flash 部分间接访问 Windows API。

现在我们想让我们的社区创建插件。
只是为了让他们用一点 ActionScript 3 制作一个小动画图片。

插件将在运行时作为外部 .swf 文件加载。
当然,我们希望我们的用户在网络上分发插件。

但是,我们有一个安全问题。
如果一些坏人会利用对 Win API 的间接访问呢?

我做了一个小测试。
加载到程序中的子 .swf 尝试调用 ExternalInterface 方法。
事实证明 child.swf 能够做到这一点。
因此,加载到我们程序中的每个 .swf 文件都会自动访问 Win API。

为我们的程序下载插件变得和 .exe 文件一样危险。

我们可以禁止 ExternalInterface 访问加载的 .swf 吗?
如果不是 - 您将如何在考虑安全性的情况下在 AS3 中实现插件系统?

我将不胜感激任何可以提供帮助的提示。

最佳答案

好吧,我不知道 AS3 中有任何显式方法。但这是我的建议:

  • 在访问 WinAPI 之前,让主 SWF 回调以授权请求。
  • 如果请求是由主 SWF 发出的,那么授权应该
    成功。
  • 如果子 SWF 提出请求,主 SWf 将拒绝该请求。


  • 编辑

    子 swf 可能不会真正覆盖主 swf 调用。如果是这样,您实际上可能会从主目录中恢复它。此外不是 child 的externalInterface,主要的swf。

    无论哪种方式,插件编写者都很难知道身份验证函数的签名,除非您共享它。

    关于Flash:我可以禁止 ExternalInterface 访问加载的 SWF 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572612/

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