【问题标题】:Hiding the IP and Port of Shoutcast streaming隐藏 Shoutcast 流的 IP 和端口
【发布时间】:2014-04-18 13:30:08
【问题描述】:

我们有一个 Shoutcast 网络广播,托管在服务器 A 上。

我们在其他地方的服务器 B 上也有一个 Drupal CMS —— 这个站点嵌入了 Flash Player,它可以流式传输提要。

我们设法在 HTML 源代码(服务器 B)中隐藏了流的 IP 和端口(服务器 A),并在推送(服务器 A)的真实 Header Location 之前使用一些脚本测试条件,但是一些浏览器,例如Firefox 在联系提要时,会在状态栏中显示最终流的 IP。

是否可以在每个浏览器上完全隐藏流的 IP 和端口,使其完全不显示?

也许从 Flash 更改为 HTML5 播放器?
还是做一些 Htaccess 重写??

【问题讨论】:

  • 为什么要隐藏IP地址?
  • 为了避免流被盗并在其他地方播放 - 我们在播放器周围展示了广告。
  • 您需要将实现更改为提供受保护的流媒体
  • 像什么?另一个流媒体服务?使用登录名/密码进行身份验证?流别名?我只是在这里放弃术语,但我知道的不多,这就是我问的原因......

标签: javascript php flash shoutcast


【解决方案1】:

隐藏服务器地址对您没有帮助。即使您要在前面放置代理,现在用户也可以简单地连接到代理服务器。您必须提供一个您的客户端可以连接的端点,这与可以在其他地方使用的端点相同。

您真正想要做的是检查对流的请求是否源自您的页面,而不是其他人的。 SHOUTcast 本身不提供此功能。

根据播放器的设置方式,您可能希望简单地检查Referer: 标头。通常,这将包含您网站的域。服务器端,您可以检查是否可以。如果没有,您可以拒绝访问。

另一种方法是发出一个会话令牌,该令牌只适合一个用户一次使用。然后,您可以将其包含在流请求查询字符串中,例如 /your/stream?token=0123456789abcdef。如果您的播放器未传递 Referer: 标头,则这是您必须执行的操作,也可用于验证页面外的流。 (我知道你现在没有这样做,但是当你开始构建移动应用程序时它可能会派上用场。)

不幸的是,除了我自己的(AudioPump Server)之外,我不知道有任何 HTTP 渐进式流媒体服务器软件可以实现这些方法,而且 AudioPump Server 还没有普遍可用。如果您有兴趣尝试一下,可以联系 brad@audiopump.co。否则,您可能不得不为此编写一些自定义代码。

如果你对配置很狡猾,你也可以让Nginx 为你做推荐人。不幸的是,SHOUTcast 不兼容 HTTP,所以这可能会让这变得困难。

【讨论】:

  • 关于检查引用者的部分已经编码——但是一旦一个人访问该页面一次并通过“合法”方式获取流,那么像 Firefox 这样的浏览器也会提供 IP 和端口状态栏,所以流可以被盗。基本上,保护只对第一次收听有效,然后显示“私人”流数据,并且可以从网络广播站点以外的其他地方流式传输......
  • @ecchymose 这不是我的建议。我是说您需要检查引荐来源网址以获取流数据本身。
【解决方案2】:

只有在AB之间使用代理才能真正隐藏IP

【讨论】:

  • 他们对隐藏 IP 地址并不真正感兴趣,他们对保护内容的消费方式很感兴趣。代理不能解决这个问题,即使问题标题要求它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多