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

Pav*_*vel 5 security flash externalinterface

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

现在我们想让我们的社区创建插件.只是让他们用一些动作脚本3制作一个小动画.

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

但是,我们有安全问题.如果某个坏人会利用间接访问Win API怎么办?

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

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

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

我很感激任何有用的提示.

lox*_*xxy 1

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

  • 在访问 WinAPI 之前,让主 SWF 回调以授权请求。

  • 如果请求是由主 SWF 发出的,则授权应该会成功。

  • 如果子 SWF 发出请求,则主 SWf 将拒绝该请求。


编辑

子 swf 可能不会真正覆盖主 swf 调用。如果确实如此,您实际上可以从 main 中重写它。此外,这不是子级的外部接口,而是主 swf。

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