在插件上下文(由另一個swf加載的swf)中,是否有任何方式限制對加載的swf在同一時間訪問文件系統和網絡?安全:限制插件訪問文件系統和網絡
編譯選項「-use-network = true | false」不適合,因爲您不能限制文件/網絡。
代碼例如:
空氣應用:
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:
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";
}
}
}
加載的SWF是在用戶的文檔文件夾中,外部空氣的應用程序的文件夾。目前,加載的瑞士法郎能夠加載「c:/Windows/regedit.exe」,我不希望它(既不在網絡上發送信息)。
這個項目是一個AIR應用程序,但我沒有看到任何可以幫助我的東西。我需要禁止網絡使用和本地訪問。 – 2011-02-14 12:03:03