Dans un contexte de plug-in (swf chargé par un autre swf), existe-t-il un moyen de restreindre l'accès au système de fichiers et au swf chargé?Sécurité: Restreindre l'accès au système de fichiers et au réseau
L'option du compilateur "-use-network = true | false" ne convient pas car vous ne pouvez pas restreindre les fichiers/le réseau.
Exemple de code:
App Air:
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.filesystem.File;
import flash.net.URLRequest;
public class TestContentSecurity extends Sprite
{
private var l :Loader = new Loader;
public function TestContentSecurity()
{
addChild(l);
l.load(new URLRequest(File.documentsDirectory.nativePath + "/Content.swf"));
}
}
}
swf Loaded:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.text.TextField;
public class Content extends Sprite
{
private var _log : TextField = new TextField;
private var l: URLLoader;
public function Content()
{
addChild(_log)
_log.multiline = true;
_log.width = 500;
_log.height = 500;
l = new URLLoader();
l.addEventListener(Event.COMPLETE, onLoad);
l.addEventListener(IOErrorEvent.IO_ERROR, onError);
l.load(new URLRequest("c:/Windows/regedit.exe"))
}
public function onLoad(e:Event) : void{
_log.text += "SUCCESS\n" ;
}
public function onError(e:IOErrorEvent) : void{
_log.text += "ERROR\n";
}
}
}
Le swf chargé est dans le dossier de documents de l'utilisateur, hors du dossier app Air. Actuellement, le swf chargé est capable de charger "c: /Windows/regedit.exe" et je ne le veux pas (ni envoyer d'informations sur le réseau). À moins que vous ne déployiez en tant qu'application AIR.
Ce projet est une application AIR mais je ne vois rien qui puisse m'aider. Et je dois interdire l'utilisation du réseau et l'accès local. –
Édité ma réponse. – weltraumpirat
Si une application Air charge un fichier SWF, le fichier chargé peut accéder au système de fichiers ou au réseau, même si je le charge dans un nouveau domaine ApplicationDomain. puis-je changer le réglage de SecurityDoamin? –