使用 Flash 的 TCP/IP 套接字策略文件忽略大量站点

Posted

技术标签:

【中文标题】使用 Flash 的 TCP/IP 套接字策略文件忽略大量站点【英文标题】:Ignore large amount of sites with TCP/IP Sockets policy file for Flash 【发布时间】:2011-08-09 07:19:22 【问题描述】:

让我解释一下我的情况。我正在使用闪存套接字来构建嵌入式聊天应用程序。一切都很好。我想允许嵌入此应用程序的所有站点连接到我的服务器,但某些站点除外。

我的问题是我不想连接到我的服务器的站点数量非常大(4-5k)。 目前,据我所知,您所能做的就是在您的策略文件中说明您允许/不允许的域。

我正在寻找的是一种让 Flash 播放器向我发送嵌入 Flash 的域的方法,我可以返回接受/拒绝响应。 我知道我可以使用 actionscript 发送有关嵌入 Flash 的站点的信息,但这很容易模拟。

那么.. 你知道任何关于此的 Flash 实现,或者你知道实现此目的的更好方法吗?

谢谢

【问题讨论】:

你为什么不使用 IP 白名单来允许你的聊天服务器上的套接字连接? 【参考方案1】:

您可以拥有多个套接字策略文件。如果您有允许域的白名单,您可以创建一个脚本来为每个域生成一个策略文件,如果您愿意的话。这将绕过每个连接都必须下载一个包含 5000 多个条目的策略文件。

但请注意,没有办法完全确保这一点。无论您做什么,都有一种方法可以欺骗客户端的上下文。您可以使用加密 swf 的混淆器来“提高黑客门槛”,但您最终相信客户端会报告其上下文。如果您需要真正的安全性,您的聊天程序需要有一个基于用户名、密码或密钥的授权系统,并且忘记尝试管理允许的域,而是从授权用户的角度考虑它。

【讨论】:

感谢您的回复。我知道没有 100% 安全的事情。我想要的是没有人使用嵌入式 swf 连接到我的服务器,除非我也想要。当前的跨平台策略系统似乎还可以,但是我认为当您需要允许/阻止大量域时它可能会出现问题。我不确定我是否知道如何为每个域创建多个策略文件。据我所知,Flash Player 向我发送一条包含策略请求的消息,然后我向他发送带有允许/阻止域的响应。您能否提供有关多个策略文件的更多详细信息。 忽略第一位。我在想我曾经为跨域策略文件做过的事情,这更容易,因为您可以在请求中发送域。您也可以拥有多个套接字策略文件,但您需要使用不同的端口(考虑到防火墙问题,这远非理想的解决方案)。您最好对允许的域使用 * 通配符,并在与聊天服务器建立连接后进行单独的身份验证握手。

以上是关于使用 Flash 的 TCP/IP 套接字策略文件忽略大量站点的主要内容,如果未能解决你的问题,请参考以下文章

使用 nodejs 和 expressjs 的 flash 套接字策略

如何从 Eclipse 插件提供 Flash 策略文件?

Android 中的 ActionScript 套接字

TCP/IP网络编程系列之二(初级)

TCP/IP网络编程——理解网络编程和套接字编程

基于tcp的socket通信