加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

实际项目中解决 flash 通信中的安全沙箱问题。

发布时间:2020-12-15 18:36:05 所属栏目:百科 来源:网络整理
导读:flash 的socket 编程不就说了,本篇旨再解决沙箱问题。 文本列出 C# PHP nodejs 为服务器端程序时出现的沙箱问题。 何为安全沙箱,请大家在百度谷歌一下! 当服务端和 flex 通信时 ”出现Security错误, Error #2048 。并且在连接时,服务端收到客户端发来的消
flash 的socket 编程不就说了,本篇旨再解决沙箱问题。

文本列出 C# PHP nodejs 为服务器端程序时出现的沙箱问题。

何为安全沙箱,请大家在百度谷歌一下!

当服务端和 flex 通信时 ”出现Security错误,Error #2048 。并且在连接时,服务端收到客户端发来的消息<policy-file-request/> 消息。“

解决方案:

服务端收到 <policy-file-request/>消息时,直接向客户端发送一条消息,内容就是配置好策略文件 并关闭当前连接

PHPCODE:

private $flashPolicy = '<cross-domain-policy><allow-access-from domain="*" to-ports="8001" /></cross-domain-policy>';

//解决flash安全沙箱问题 if($lines[0] == "<policy-file-request/>") ? ? ? //收到 <policy-file-request/> 时,结尾以结束 { $this->server->writeBuffer($this->socket, $this->flashPolicy); //写给客户端 stream_socket_shutdown($this->socket, STREAM_SHUT_RDWR); ? ? ? ? ? ?//重点。要关闭当前的连接,原因后面说 return false; }


C#

if (0 == strcmp("<policy-file-request/>", szRecvBuff)) { if (strlen(szPolicy) == sockClient.Send(szPolicy, strlen(szPolicy))) { printf_s("# Send policy xml string successful./n"); } else { printf_s("# Error! Send policy xml string failed./n"); } sockClient.Close(); //***重点在这里*** RemoveClient(m_vsockClients[i--]); continue; }


nodejs

flashPolicy = '<cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>';

var _headers = data.split("rn"); if ( /<policy-file-request.*>/.exec(_headers[0]) ) { socket.write( options.flashPolicy ); socket.end(); return; }


代码不多说,各有个的风格,步骤如上。

这样就解决了flash的沙箱问题。

祝大家好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读