如何通过网络传送音乐(渐进/下载)而不暴露mp3的URL(即使在webkit浏览器中)

我希望能够使用flash播放器播放音乐/ mp3但是我想这样做 mp3文件无法被嗅探...即你不能使用safari,firebug..etc。 使用活动窗口找出mp3位置。 我没有流媒体服务器。 任何的想法? </ p>

如果我使用流媒体服务器,有关如何解决它的任何建议(便宜)?</ p>
</ div>

展开原文

原文

I want to be able to deliver music/mp3 using a flash player but I'd like to make it so that the mp3 files cannot be sniffed... i.e. you can't use safari, firebug..etc. to find out the mp3 location using the activity window. I don't have a streaming server. Any idea?

If I go with a streaming server, any suggestions on how to go about it (cheaply)?

7个回答



您实际上无法在HTTP中安全地区分客户端。 当他们记录整个流量时,他们总是可以重放交互,除非您使用一些加密机制。 </ p>

作为一种简单的方法,我会尝试仅将请求与访问密钥结合使用。 访问密钥由您自己创建,并作为URI的参数发送到浏览器。 当客户端发送请求时,它仅在提供的访问密钥有效时才有效。 在访问密钥中,您可以编码一些信息,如IP地址,时间范围,用户代理等。</ p>

但正如我所说,没有100%安全的方法来保护您的数据,如 只要你最终通过HTTP公开它。 总是采用硬核方法来嗅探整个流量并以这种方式重建文件。</ p>

Amazon S3使用访问密钥,但也有像nginx这样的Web服务器插件。 </ p>
</ div>

展开原文

原文

You really cannot distinguish safely clients in HTTP. When they record the whole traffic, they always can replay the interaction, unless you use some cryptographic mechanisms.

As an easy approach, I would try to allow requests only in combination with an access key. The access key is created by yourself and send to the browser as a parameter of the URI. When the clients sends the request, it is only valid if the provided access key is valid as well. Within the access key, you could encode some information like IP address, time range, user agent etc.

But as I said, there is no 100% secure way to protect your data, as long as you eventually expose it via HTTP. There is always the hardcore approach to sniff your whole traffic and rebuild the files that way.

Access keys are used by Amazon S3, but there are also plugins for webservers like nginx.

dongliu0823
dongliu0823 你知道PHP中的任何访问密钥包吗?
10 年多之前 回复



如果您要将mp3发送到用户的计算机,则需要将mp3发送到用户的计算机。 我猜你可以尝试某种加密,以便更难恢复MP3,但是如果用户的计算机可以播放它,它也可以使用相同的位并在播放之前将它们保存到磁盘上。</ p>
</ DIV>

展开原文

原文

If you're delivering an mp3 to the user's computer, you're delivering an mp3 to the user's computer. I guess you can try encryption of some sort to make it harder to recover the MP3, but if the user's computer can play it, it can also take those same bits and save them off to disk before playing them.



如果不使用Flash之类的某种封闭技术,就不可能隐藏URL。 您可以使用的另一种方法是将MP3保存在受密码保护的目录中,但通过绕过该保护的服务器端脚本将其流式传输到浏览器。 这样,即使有人知道MP3文件的URL,也无法通过在网络浏览器中输入地址来下载它。</ p>
</ div>

展开原文

原文

It's not really possible to conceal the URL without using some sort of closed technology like Flash. An alternative you can use is to keep your MP3s in a password-protected directory but stream them to the browser via a server-side script that bypasses that protection. That way, even if someone knows the URL of an MP3 file, they can't download it by simply entering its address in their web browser.

douzoudang1511
douzoudang1511 克里斯+1 您可以使用HTTP,Fiddler会捕获它,或者您使用其他东西来处理所有问题 - 例如防火墙阻止您的非标准协议的用户。
10 年多之前 回复
dpkajqd31574096
dpkajqd31574096 鉴于足够聪明的最终用户,即使使用Flash也无济于事。 Flash小程序可以被反编译和分析,像Fiddler这样的程序可以让用户看到他们的机器和其他人之间的所有HTTP流量。
10 年多之前 回复



这或多或少是不可能的。 由于客户端可以连接,因此必须知道地址。 你想要隐藏源代码,但你无法完全隐藏它,我想最简单的方法是使用某种浏览器插件,想到flash和java(正如你所建议的那样),它要求 地址的服务器。 请注意,仍然可以分析flash或java程序,因为浏览器仍然需要下载.swf文件。</ p>

另一种方法是使用一次性URL ,服务器提供只能使用一次的URL。 它仍然是“可以嗅探的”,如果在客户端连接之前它被截获,它仍然可以被利用。</ p>
</ div>

展开原文

原文

This is more or less impossible. Since the client can connect, it must know the address. You're looking to obscure the source, but you can't hide it completely, and I suppose the easiest way would be to use some kind of browser plugin, flash and java comes to mind (as you've suggested), which asks a server for the address. Note that it's still very much possible to analyze the flash or java program, as the browser still needs to download the .swf file.

A different approach would be to use a single-use URL, where server serves up a URL which can only be used once. It's still 'sniffable' and can still be exploited if it's intercepted before the client connects though.

douken7402
douken7402 “一次性URL”与PartlyCloudy提到的访问密钥相同。 这并不是很难,只需向客户端发送一个随机数,将其存储在php会话中,当请求到达时,检查它是否相同(可能以某种非平凡的方式进行转换以模糊它)并将其删除为 从会话中有效。
10 年多之前 回复
dtcd27183
dtcd27183 我正在使用之前的建议,但它仍然可以嗅探。 我认为您以后的建议可行 - 一次性网址。 你知道任何PHP包吗?
10 年多之前 回复
dongyi7041
dongyi7041 当然,这就是为什么我总是说'地址',这可能不是一个URL。 如何访问数据并不重要,仍然可以分析程序并以此方式访问。
10 年多之前 回复
dpjj4763
dpjj4763 不仅可以分析程序,还有监控HTTP流量的程序,甚至可以更轻松地捕获请求和回复。
10 年多之前 回复



使用套接字服务器并隐藏连接。 我认为像电子服务器这样的东西应该做你想要的,它曾经拥有多达25个左右的用户的免费许可证,然后只有几百个许可证。 不确定ES4 ......对你的需求可能有点过分。 </ p>
</ div>

展开原文

原文

use a socket server and obscure the connection. I think something like electroserver should do what you want, it used to have a free license up to 25 or so users, then its only a couple hundred to license it. Not sure about ES4.... It might be overkill for your needs.



转到流媒体,或者说不可能。 Firebug,Opera的Dragonfly等显示浏览器运行的所有</ em> HTTP请求,没有办法隐藏它们。 我从“常规”闪存(例如,YouTube)下载媒体,并且每次都有效,除了流媒体,因为这不是HTTP。</ p>
</ div>

展开原文

原文

Go for streaming, or it's impossible. Firebug, Opera's Dragonfly, etc. show all HTTP requests run by the browser, there is no way to hide them. I download media from "within" flash regulary (YouTube, for example), and it works every time, except with streaming, because that's not HTTP.

dpf5207
dpf5207 当mlb.com的flash播放器无法在linux上运行时,我曾经一直下载流媒体。 只需使用javascript断点抓取一次性密钥并将其提供给我的媒体播放器。
10 年多之前 回复
du1843
du1843 我喜欢你的诚实。 :)
10 年多之前 回复



您可以使用双向加密。</ p>

您将加密的URL传递给音频播放器 然后让播放器对它们进行反向加密。 不是100%安全但它可以帮助。</ p>
</ div>

展开原文

原文

You can use a 2-way encryption.

You pass encrypted URLs to the audio player then have the player reverse-encrypt them. Not 100% secure but it could help.

dongtuan1594
dongtuan1594 可以尝试加密音频/视频流本身? 然后,如果用户找到该URL,则在没有正确密钥的情况下无法播放数据。
10 年多之前 回复
dongxi1943
dongxi1943 当然,这不是一种100%安全的方法。
10 年多之前 回复
dsozqcx9668
dsozqcx9668 问题是,当音频播放器解密网址时,它向服务器发出请求,然后客户端知道该网址是什么。
10 年多之前 回复
dps43633
dps43633 我试过了......它不起作用,因为人们可以使用Tampa,Safari Activity窗口等等来嗅探HTTP地址。
10 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐