中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FlexSocket安全沙箱沖突怎么處理

發布時間:2021-12-06 10:08:12 來源:億速云 閱讀:159 作者:小新 欄目:編程語言

小編給大家分享一下FlexSocket安全沙箱沖突怎么處理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

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

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

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

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

<policy-file-request/>

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

2,合理的方案,用java實現

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

packagesban.socketServer;   importjava.io.BufferedInputStream;  importjava.io.BufferedReader;  importjava.io.File;  importjava.io.FileInputStream;  importjava.io.IOException;  importjava.io.InputStreamReader;  importjava.io.PrintWriter;  importjava.net.InetSocketAddress;  importjava.net.ServerSocket;  importjava.net.Socket;  importjava.net.SocketAddress;  importjava.net.URL;   /**  *sbanpolicyserverforflex/flashsocket  *  *@authorsban<http://sban.biz/> *  */  publicclassSbanSocketPolicyServer{   publicSbanSocketPolicyServer(){    }    publicstaticStringreadFileAsString(Stringurl)     throwsjava.io.IOException{    byte[]buffer=newbyte[(int)newFile(url).length()];    BufferedInputStreamf=newBufferedInputStream(      newFileInputStream(url));    f.read(buffer);    f.close();    returnnewString(buffer);   }    publicstaticvoidmain(String[]args)throwsIOException{    ServerSocketserver=newServerSocket();    SocketAddressendpoint=newInetSocketAddress("127.0.0.1",843);    server.bind(endpoint);    Stringpath=SbanSocketPolicyServer.class.getResource("../../crossdomain.xml").getPath();    System.out.println(path);    Stringpolicy=readFileAsString(path);     while(true){     System.out.println("waitforclient...");     Socketsocket=server.accept();      BufferedReaderin=newBufferedReader(newInputStreamReader(       socket.getInputStream()));     PrintWriterout=newPrintWriter(socket.getOutputStream());     Strings=in.readLine();     System.out.println(s);      if(s.indexOf("policy-file-request")>-1){      out.print(policy+'\0');      out.flush();      in.close();      out.close();      System.out.println("sendedpolicycontext.");      socket.close();     }    }    }  }

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

<cross-domain-policy> <site-controlpermitted-cross-domain-policiessite-controlpermitted-cross-domain-policies="all"/> <allow-access-fromdomainallow-access-fromdomain="*"to-ports="*"/> </cross-domain-policy>

將crossdomain.xml文件與執行文件放置一起

3,你可以借用的jar執行文件

sban把上述java導出為jar可執行文件:

SbanSocketPolicyServer.zip5.8KB

在Windows下,確定已安裝java環境,并已設定環境變量,在命令行窗口中執行如下命令:

java-jarSbanSocketPolicyServer.jar

說明:該java程序未經優化,僅作為教程示例,不建議在商業項目中使用。

以上是“FlexSocket安全沙箱沖突怎么處理”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

波密县| 福安市| 张家界市| 五台县| 花莲市| 肇庆市| 黑河市| 涞源县| 连山| 泰和县| 哈巴河县| 夏邑县| 中超| 建平县| 岳阳市| 藁城市| 白山市| 平舆县| 琼海市| 防城港市| 南华县| 桑日县| 张家界市| 惠来县| 亳州市| 大庆市| 乐清市| 西盟| 措勤县| 惠东县| 安国市| 荔波县| 汝阳县| 邯郸县| 兴义市| 东宁县| 阳西县| 德令哈市| 桂阳县| 阜康市| 乐陵市|