Question

Quelle est la différence en termes de sécurité entre les SWFLoaders déclaratifs et programmatiques? Dans le ff. code, loader1 lève une exception de sécurité, contrairement à loader2.

public someFunction(source:String):void
{
  var loader1:SWFLoader = new SWFLoader();
  loader1.load(source);

  loader2.source = source;
}

...

<mx:SWFLoader id="loader2"/>
Était-ce utile?

La solution

Je ne pense pas qu'il y ait de différence en termes de sécurité. N'oubliez pas que MXML est converti en ActionScript par le compilateur mxmlc avant le début de la compilation. Un SWFLoader déclaratif (ou tout autre élément déclaratif, par conséquent) n'est qu'un moyen simple de créer quelque chose à la place. de le coder à la main. Vous pouvez utiliser l'argument -compiler.keep-généré-actionscript mxmlc pour voir quel type de code est généré à partir de votre MXML.

Et la raison pour laquelle vous ne voyez pas d'erreur d'exécution de la ligne loader2.source = source; dans cet exemple est que, puisque la ligne de code précédente appelle une erreur, l'exécution de cette fonction s'arrête là. Essayez de commenter la ligne où vous appelez loader1.load (source) et vous verrez la ligne suivante lancer ce type d'erreur SecurityError:

SecurityError: Error #2148: SWF file http://example.com/test.swf cannot access local resource file:///Users/username/Desktop/picture.jpg. Only local-with-filesystem and trusted local SWF files may access local resources.
    at flash.display::Loader/_load()
    at flash.display::Loader/load()
    at mx.controls::SWFLoader/loadContent()
    at mx.controls::SWFLoader/load()
    at mx.controls::SWFLoader/commitProperties()
    at mx.core::UIComponent/validateProperties()
    at mx.managers::LayoutManager/validateProperties()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()
    at mx.core::UIComponent/callLaterDispatcher()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top