日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
FlexSocket安全沙箱沖突及解決方案

本文和大家重點討論一下FlexSocket安全沙箱沖突及解決方案,F(xiàn)lexSocket連接SocketServer時,javaSocket、c++Socket,抑或其它,首先會開一個Socket連接主機(jī)的843端口請求安全策略文件,這個時間為3秒;如果此步未能成功,則看開發(fā)者是否顯式調(diào)用了Security.loadPolicyFileAPI。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供豐鎮(zhèn)企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為豐鎮(zhèn)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

FlexSocket安全沙箱沖突及解決方案

這是FP被廣為唾罵的特性之一,其設(shè)計糟糕至極。Adobe貌似認(rèn)為9秒時間對用戶來說很短。

1,糟糕的設(shè)計可能使用戶浪費9秒時間

FlexSocket連接SocketServer時,javaSocket、c++Socket,抑或其它,首先會開一個Socket連接主機(jī)的843端口請求安全策略文件,這個時間為3秒;如果此步未能成功,則看開發(fā)者是否顯式調(diào)用了Security.loadPolicyFileAPI,如下

 
 
 
  1. Security.loadPolicyFile("xmlsocket://127.0.0.1:1843"); 

如有,則再次嘗試從這個端口加載策略數(shù)據(jù),又是3秒。如果此步又未能OK,則嘗試從開發(fā)者定義的FlexSocket主機(jī)端口再次加載安全策略,此時會發(fā)送這樣一個請求:

 
 
 
  1.  

如果SocketServer沒有處理這個請求,客戶端將無法進(jìn)一步完成FlexSocket連接。這個過程又是3秒。如果軟件設(shè)計不當(dāng),客戶端將浪費9秒的時間才能知道它有沒有獲得Server的連接許可,這張門票有點貴了。FP如能成功加載到安全策略數(shù)據(jù),會把所用socket拋棄(即使從主機(jī)端口請求亦是如此),然后執(zhí)行開發(fā)者的socket連接邏輯。

2,合理的方案,用java實現(xiàn)

在SocketServer端單開一個843端口,用于專門向客戶端提供安全策略文件,java示例代碼如下:

 
 
 
  1. packagesban.socketServer;  
  2.  
  3. importjava.io.BufferedInputStream;  
  4. importjava.io.BufferedReader;  
  5. importjava.io.File;  
  6. importjava.io.FileInputStream;  
  7. importjava.io.IOException;  
  8. importjava.io.InputStreamReader;  
  9. importjava.io.PrintWriter;  
  10. importjava.net.InetSocketAddress;  
  11. importjava.net.ServerSocket;  
  12. importjava.net.Socket;  
  13. importjava.net.SocketAddress;  
  14. importjava.net.URL;  
  15.  
  16. /**  
  17. *sbanpolicyserverforflex/flashsocket  
  18. *  
  19. *@authorsban 
  20. *  
  21. */  
  22. publicclassSbanSocketPolicyServer{  
  23.  publicSbanSocketPolicyServer(){  
  24.  
  25.  }  
  26.  
  27.  publicstaticStringreadFileAsString(Stringurl)  
  28.    throwsjava.io.IOException{  
  29.   byte[]buffer=newbyte[(int)newFile(url).length()];  
  30.   BufferedInputStreamf=newBufferedInputStream(  
  31.     newFileInputStream(url));  
  32.   f.read(buffer);  
  33.   f.close();  
  34.   returnnewString(buffer);  
  35.  }  
  36.  
  37.  publicstaticvoidmain(String[]args)throwsIOException{  
  38.   ServerSocketserver=newServerSocket();  
  39.   SocketAddressendpoint=newInetSocketAddress("127.0.0.1",843);  
  40.   server.bind(endpoint);  
  41.   Stringpath=SbanSocketPolicyServer.class.getResource("../../crossdomain.xml").getPath();  
  42.   System.out.println(path);  
  43.   Stringpolicy=readFileAsString(path);  
  44.  
  45.   while(true){  
  46.    System.out.println("waitforclient...");  
  47.    Socketsocket=server.accept();  
  48.  
  49.    BufferedReaderin=newBufferedReader(newInputStreamReader(  
  50.      socket.getInputStream()));  
  51.    PrintWriterout=newPrintWriter(socket.getOutputStream());  
  52.    Strings=in.readLine();  
  53.    System.out.println(s);  
  54.  
  55.    if(s.indexOf("policy-file-request")>-1){  
  56.     out.print(policy+'\0');  
  57.     out.flush();  
  58.     in.close();  
  59.     out.close();  
  60.     System.out.println("sendedpolicycontext.");  
  61.     socket.close();  
  62.    }  
  63.   }  
  64.  
  65.  }  
  66. }  
  67.  

而crossdomain.xml文件的示例代碼為:

 
 
 
  1.  
  2.  
  3.  
  4.  

將crossdomain.xml文件與執(zhí)行文件放置一起

3,你可以借用的jar執(zhí)行文件

sban把上述java導(dǎo)出為jar可執(zhí)行文件:

SbanSocketPolicyServer.zip5.8KB

在Windows下,確定已安裝java環(huán)境,并已設(shè)定環(huán)境變量,在命令行窗口中執(zhí)行如下命令:

java-jarSbanSocketPolicyServer.jar

說明:該java程序未經(jīng)優(yōu)化,僅作為教程示例,不建議在商業(yè)項目中使用。


名稱欄目:FlexSocket安全沙箱沖突及解決方案
當(dāng)前地址:http://www.5511xx.com/article/dhpcjgp.html