DWY安全创造价值 2011-08-15
在AdobeFlashPlayer升级到9.0.124后,由于安全策略更改,原来Socket或XmlSocket的应用里的http方式加载安全策略的手段不能继续使用。更改如下:
1,首先检测目标服务器的843端口是否提供安全策略
2,如果1没有检测到策略,则检测actionscript是否使用了Security.loadPolicyFile(xmlsocket://)手段提供安全策略,如果还没检测到,则使用第3步检测
3,检测目标服务器目标端口是否提供安全策略。
检验的过程就是发送“<policy-file-request/>\0”
解决办法:
public class Flex843 extends Thread { final byte[] xml = "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0".getBytes(); public void run(){ ServerSocket serverSocket; try { serverSocket = new ServerSocket(843); while(true){ Socket socket=serverSocket.accept(); OutputStream os=socket.getOutputStream(); os.write(xml); os.flush(); os.close(); socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
(new Flex843()).start();//在服务器启动的时候执行