关于Flash安全沙箱的问题

问题描述

我只有这么多分数了,全部给了,还请高手帮忙看一下。在下先谢过了编译生成swf文件后单独能运行,并且能和服务器telnet,一切正常,但是当我把这个方腊时嵌入到html网页当中是,就不能运行了。我找了很久也没有找到原因,请大家帮忙看一下问题的所在。一下是源文件(TelnetSocket.mxml和Telnet.as)1.TelnetSocket.mxml<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"><mx:Script><![CDATA[importcom.example.programmingas3.socket.Telnet;privatevartelnetClient:Telnet;privatefunctionconnect():void{telnetClient=newTelnet(serverName.text,int(portNumber.text),output);console.title="Connectingto"+serverName.text+":"+portNumber.text;console.enabled=true;}privatefunctionsendCommand():void{varba:ByteArray=newByteArray();ba.writeMultiByte(command.text+"n","UTF-8");telnetClient.writeBytesToSocket(ba);command.text="";}]]></mx:Script><mx:Labelid="title"text="TelnetSocketExample"fontSize="24"fontStyle="bold"/><mx:Labelid="subtitle"text="FromProgrammingActionScript3.0,Chapter22:Networkingandcommunication"fontSize="12"/><mx:ApplicationControlBarwidth="100%"><mx:Labeltext="Server:"/><mx:TextInputid="serverName"text="192.168.0.150"width="100%"/><mx:Spacer/><mx:Labeltext="Port:"/><mx:TextInputid="portNumber"text="503"textAlign="right"maxChars="5"restrict="0-9"/><mx:Spacer/><mx:Buttonlabel="Login"click="connect();"/></mx:ApplicationControlBar><mx:Spacer/><mx:Panelid="console"enabled="false"width="100%"height="100%"paddingTop="10"paddingBottom="10"paddingLeft="10"paddingRight="10"><mx:TextAreaid="output"editable="false"width="100%"height="100%"fontFamily="CourierNew"/><mx:ControlBar><mx:Labeltext="Command:"/><mx:TextInputid="command"width="100%"enter="sendCommand();"/><mx:Buttonlabel="Send"click="sendCommand();"/></mx:ControlBar></mx:Panel></mx:Application>2.Telnet.aspackagecom.example.programmingas3.socket{importflash.events.*;importflash.net.Socket;importflash.system.Security;importflash.utils.ByteArray;importflash.utils.setTimeout;importmx.controls.TextArea;importmx.core.UIComponent;publicclassTelnetextendsUIComponent{privateconstCR:int=13;//CarriageReturn(CR)privateconstWILL:int=0xFB;//251-WILL(optioncode)privateconstWONT:int=0xFC;//252-WON'T(optioncode)privateconstDO:int=0xFD;//253-DO(optioncode)privateconstDONT:int=0xFE;//254-DON'T(optioncode)privateconstIAC:int=0xFF;//255-InterpretasCommand(IAC)privatevarserverURL:String;privatevarportNumber:int;privatevarsocket:Socket;privatevarta:TextArea;privatevarstate:int=0;publicfunctionTelnet(server:String,port:int,output:TextArea){//setclassvariablestothevaluespassedtotheconstructor.serverURL=server;portNumber=port;ta=output;//CreateanewSocketobjectandassigneventlisteners.socket=newSocket();socket.addEventListener(Event.CONNECT,connectHandler);socket.addEventListener(Event.CLOSE,closeHandler);socket.addEventListener(ErrorEvent.ERROR,errorHandler);socket.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);socket.addEventListener(ProgressEvent.SOCKET_DATA,dataHandler);//Loadpolicyfilefromremoteserver.Security.loadPolicyFile("http://"+serverURL+"/crossdomain.xml");//Attempttoconnecttoremotesocketserver.try{msg("Tryingtoconnectto"+serverURL+":"+portNumber+"n");socket.connect(serverURL,portNumber);}catch(error:Error){/*Unabletoconnecttoremoteserver,displayerrormessageandcloseconnection.*/msg(error.message+"n");socket.close();}}/***ThismethodiscalledifthesocketencountersanioErrorevent.*/publicfunctionioErrorHandler(event:IOErrorEvent):void{msg("Unabletoconnect:socketerror.n");}/***Thismethodiscalledbyourapplicationandisusedtosenddata*totheserver.*/publicfunctionwriteBytesToSocket(ba:ByteArray):void{socket.writeBytes(ba);socket.flush();}privatefunctionconnectHandler(event:Event):void{if(socket.connected){msg("connected...n");}else{msg("unabletoconnectn");}}/***Thismethodiscalledwhenthesocketconnectionisclosedby*theserver.*/privatefunctioncloseHandler(event:Event):void{msg("closed...n");}/***Thismethodiscalledifthesocketthrowsanerror.*/privatefunctionerrorHandler(event:ErrorEvent):void{msg(event.text+"n");}/***Thismethodiscalledwhenthesocketreceivesdatafromtheserver.*/privatefunctiondataHandler(event:ProgressEvent):void{varn:int=socket.bytesAvailable;//Loopthrougheachavailablebytereturnedfromthesocketconnection.while(--n>=0){//Readnextavailablebyte.varb:int=socket.readUnsignedByte();switch(state){case0://Ifthecurrentbyteisthe"InterpretasCommand"code,setthestateto1.if(b==IAC){state=1;//Else,ifthebyteisnotacarriagereturn,displaythecharacterusingthemsg()method.}elseif(b!=CR){msg(String.fromCharCode(b));}break;case1://Ifthecurrentbyteisthe"DO"code,setthestateto2.if(b==DO){state=2;}else{state=0;}break;//Blindlyrejecttheoption.case2:/*Writethe"InterpretasCommand"code,"WONT"code,andcurrentbytetothesocketandsendthecontentstotheserverbycallingtheflush()method.*/socket.writeByte(IAC);socket.writeByte(WONT);socket.writeByte(b);socket.flush();state=0;break;}}}/***AppendmessagetotheTextAreacomponentonthedisplaylist.*Afterappendingtext,callthesetScroll()methodwhichcontrols*thescrollingoftheTextArea.*/privatefunctionmsg(value:String):void{ta.text+=value;ta.dispatchEvent(newEvent(Event.CHANGE));setTimeout(setScroll,100);}/***ScrolltheTextAreacomponenttoitsmaximumverticalscroll*positionsothattheTextAreaalwaysshowsthelastlinereturned*fromtheserver.*/publicfunctionsetScroll():void{ta.verticalScrollPosition=ta.maxVerticalScrollPosition;}}}

解决方案

解决方案二:
该回复于2011-04-11 09:46:01被版主删除
解决方案三:
额。flex的。。搞过。没嵌过。不好意思哈
解决方案四:
拜托帮帮忙
解决方案五:
拜托,帮帮忙
解决方案六:
权限不一样的,你本地运行swf是本地沙箱,你嵌入到html里是远程沙箱,因为连接的远程服务器没有策略文件,所以你无法访问,详见http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html
解决方案七:
我也是这毛病,加了策略文件了也不行呢。不知是为什么。
解决方案八:
varg_nTotalRecvByte=0;varg_time=newDate();varg_nStartTime=g_time.getTime();varg_nCounter=0;varnum_table=newArray("0","1","2","3","4","5","6","7","8","9");varmySocket=newXMLSocket();//安全沙箱,没有的话,有安全问题,就不能跨域访问数据了。System.security.sandboxType=localTrusted;System.security.loadPolicyFile("xmlsocket://xym5366.vicp.net:6000");System.security.loadPolicyFile("xmlsocket://xym5366.vicp.net/flashpolicy.xml:6000");_root.mySocket.connect("xym5366.vicp.net",6000);//Á¬½ӷþÎñÆ÷_root.mySocket.onConnect=function(success){if(success){_root.txt.text="连网成功";trace("连网成功");}else{_root.txt.text="安全沙箱没有通过,连网失败。如果您有好的办法,请emil我,谢谢。";trace("连网失败");}}functionConvertToMsg(str){varl=str.length+3;vart="";if(l>=10)t=num_table[Math.floor(l/10)]+num_table[Number(l%10)]+str;elset=num_table[0]+num_table[l]+str;returnt;}mySocket.onData=function(xmlDoc){txt.text=xmlDoc;trace(xmlDoc);}//下面是按钮的代码on(press){varmsg=_root.ConvertToMsg(_root.tsk.text);trace(msg);_root.mySocket.send(msg);}
解决方案九:
我这些代码也不行,我是flash8,用的是自建的花生壳iis,根目录也放策略文件了,就是不行。引用7楼xym5366的回复:

varg_nTotalRecvByte=0;varg_time=newDate();varg_nStartTime=g_time.getTime();varg_nCounter=0;varnum_table=newArray("0","1","2","3","4","5","6","7","8","9");varmySocket=new……

时间: 2024-10-26 14:34:04

关于Flash安全沙箱的问题的相关文章

flash开发-flash安全沙箱问题,求解决

问题描述 flash安全沙箱问题,求解决 securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 求解决方法和方向

用Flash制作Google搜索程序

google|程序   在我们构造Google 搜索程序之前我们还需要Google Web APIs Developer's Kit,你可以从http://www.google.com/apis/download.html下截直接解压缩就可以了.里面已经含了所需要的文件和已经编译好的文件,官方地址是http://www.google.com/apis.不过实际上对我们有用的只是GoogleSearch.wsdl这个文件,把这个文件和SWF文件放在同一文件夹运行既可. 构造一个Flash 表单屏屏

由Flash Player插件导致Firefox卡顿

  熟悉Firefox浏览器的用户对于Adobe出品的Flash Player插件可以说是爱恨交加,这个小小视频插件常常造成Firefox浏览器上网延迟,卡顿,甚至未响应,最终是插件奔溃.近日Adobe官网针对Flash Player插件造成Firefox浏览器卡顿的问题给出解决方法,虽然是针对旧版11.3的解决方案,但也适用于新版的11.x版本. 禁用安全沙箱技术,主要通过修改mms.cfg解决: 首先找到mms.cfg文件所在位置路径: Windows 32位系统::C:windowssys

Flash终于走向死亡!Flash的兴衰之路你知多少

作为最大名鼎鼎的网络多媒体技术之一,Flash的名号可谓是无人不知无人不晓.然而,触手曾伸及形形色色网站的Flash,现在终于要退出历史的舞台.Adobe已经宣布,Flash将会在2020年停止开发和更新,这意味着Flash已经彻底走向淘汰.盛极一时的Flash,是如何被人抛弃的?明明是Flash先来的,玩小游戏也好,看视频也好,实现各种复杂的交互也好,但为什么Flash会被HTML5取而代之?今天,就一起来谈谈关于Flash的话题吧. Flash将在2020年被彻底淘汰 Flash:曾是互联网

《XSS跨站脚本攻击剖析与防御》—第6章6.2节 Flash安全模型

6.2 Flash安全模型XSS跨站脚本攻击剖析与防御Adobe的Flash技术已经变得越来越流行了,现在该软件不仅用于创建动画和广告,而且还用来开发复杂的应用程序.借助于ActionScript,Flash具备了与服务器的交互功能,当然,不可避免地成为漏洞和后门程序的主攻之地,越来越多的黑客开始着力发掘Flash安全漏洞,基于Flash的客户端攻击日渐密集,包括我们熟知的XSS.CSRF等. 自Flash7.0问世以来,Flash的安全模型(Security Model)就开始运行,主要提供以

Chrome OS开发版更新 带来多显示器支持

Google最近正在大力为其Chromebooks做市场推广,产品主要由三星和Acer制造.我们注意到该公司在时代广场为基于Chrome OS的笔记本作了一个临时的展出,与上月微软在Windows 8发布时所作的事情类似.当下的Chrome OS还不能在将屏幕内容扩展到另一台显示器,而据MaximumPC.com的报道称,Google终于在最近的一个开发人员更新里,为Chrome OS设备带来了多显示器的支持. 该更新还包含了同样由三星制作的Chromebox desktop PC. 更新还包括

Flash在某些多标签浏览器中的“伪沙箱”问题

在Flash播放器运行时,将不同来源的资源划分到独立的沙箱(sandbox)内,不同沙箱之间不能彼此操作数据(除非目标沙箱做过一些设置,授 权其他沙箱可访问),这就是Flash的跨沙箱问题.当Flash文件(.swf) 和页面(.html)不在同一个域名下时,如果不经过Flash内部声明System.allowDomain,html无法访问flash定义的接口: 不经过html设置allowScriptAccess为'always',Flash也无法调用页面上的js函数. 那么如果html和fl

Flash Player 11.8 beta增强沙箱技术

  Adobe在上周对Flash Player 11.8 Beta版进行了一次更新,主要是针对安全性方面的改进,此外在兼容性.性能等方面也有加强. 经过这次改动,在沙箱技术上也进行了增强,增强型的沙盒技术能够更好的处理应用程序在保护模式下的启动. Flash Player 尽管Flash Player已经不再针对移动平台进行开发,但一些技术还是通用的,这次Datagram socket API和ServerSocket API都支持了iOS和Android平台,但也仅限于swf 21及更新版本.

Flash沙箱安全模式怎么关闭

让我们先打开开始菜单,输入:notepad ,然后在 notepad.exe 右键菜单中选择"以管理员身份运行" 打开记事本后,点击"文件-打开" 不同系统按照上面的地址找到C盘的Flash 文件夹,记得选择显示"所有文件"喔! 接着我们在Flash文件夹下找到 mms.cfg文件,并打开TA. 然后让我们把输入法切换到英文状态下,mms.cfg文本中最后面加上一句:ProtectedMode=0 然后保存即可,剩下的就是等待Adobe Flas