Tenemos una aplicación Flash (AS3). Esta es una aplicación de escritorio que se ejecuta en nuestro propio proyector. Sin aire. El proyector está escrito en C++. El proyector otorga a la parte Flash un acceso indirecto a la API de Windows a través de ExternalInterface.Flash: ¿puedo prohibir el acceso de ExternalInterface al archivo SWF cargado?
Ahora queremos que nuestra comunidad cree complementos. Solo para permitirles hacer una pequeña imagen animada con un poco de Action Script 3.
Un complemento se cargará como archivo externo .swf en tiempo de ejecución. Y, por supuesto, nos gustaría que nuestros usuarios distribuyan los complementos en la red.
Pero, tenemos un problema de seguridad. ¿Qué pasa si una mala persona aprovecha el acceso indirecto a Win API?
He hecho una pequeña prueba. Un archivo .swf hijo cargado en el programa intenta llamar a métodos ExternalInterface. Resultó que child.swf pudo hacer esto. Por lo tanto, cada archivo .swf cargado en nuestro programa tendrá automáticamente acceso a Win API.
La descarga de complementos para nuestro programa se vuelve tan peligrosa como un archivo .exe.
¿Podemos prohibir el acceso de ExternalInterface al .swf cargado? En caso negativo, ¿cómo implementaría el sistema de complementos en AS3 teniendo en cuenta la seguridad?
Agradecería cualquier consejo que pueda ayudar.
¿Pero puede el SWF secundario anular el método de devolución de llamada de autorización utilizando ExternalInterface.addCallback()? No sé de una forma u otra y el documento no especifica: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#addCallback() –
Aren ¿Puedes diferenciar entre niños y swfs principales de la interfaz externa? Un navegador puede, por lo que una interfaz externa personalizada debe tener al menos esta funcionalidad –
@ Mike Ver mis ediciones. – loxxy