0

我想将 FLV 视频从 S3 服务器加载到我的 Flash 应用程序中。原始文件需要受到保护(即权限设置为仅对经过身份验证的用户只读),因此将使用签名的 url 调用视频文件...我已设法将未签名的 url FLV 加载和播放到 Flash 应用程序中。

1)在潜水之前我应该​​注意什么问题?
2) 我需要使用 AS3 S3 库来生成签名吗?
3) 我可以在应用程序加载时(例如从 PHP)生成 1 个签名并将其发送到 Flash 以与它加载的每个 FLV 文件一起使用吗?
4) 图像和音频也将被加载到 Flash 应用程序中,并且也需要受到保护。

谢谢斯蒂芬

4

3 回答 3

0

是的,您可以在 Flash 中播放签名的 url 没问题...

通过阅读,我设法回答了几个我自己的问题 -

1)是的很多!
2) 从 Flash 中对 url 进行签名不是一个好主意,因为密钥需要在 SWF 中或从 PHP 加载,因此这里可能存在安全风险。最好在服务器上调用 PHP 方法来生成签名的 url 并将文件返回到 Flash/返回文件的路径(sendAndLoad?)。但这似乎是一个可以以某种方式绕过的额外步骤!
3)仍然不确定这一点,但我认为签名过程涉及使用文件的路径,因此每个 url 的每个签名都是唯一的 - 这是正确的吗?

有人对此有进一步的建议吗?斯蒂芬

于 2009-03-26T13:34:01.657 回答
0

显然,我已经花费了无数个小时为我的网站尝试使用 MP3 文件。回答:

1)不要太复杂的任务。(尽管我的 Gazillion 小时)

2) 不要在 Flash 中对 URL 进行签名。使用托管 PHP 文件,您可以向该文件发出 AJAX 请求以获取签名 URL。为此,您的 S3 存储桶的目录结构必须具有一致的模式,使得文件位置在给定一些输入的情况下可以通过编程确定。

我不认为这是一个可以绕过的过程。URL 签名只能在服务器端完成,而不能在客户端完成。如果您想查看我的 AJAX 示例代码,请告诉我。我把它贴在这里给你

3)签名过程至少使用三个变量来创建签名 - 时间戳、文件位置(bucket/folder/floder/file)、S3 Secret Key。因此,对文件的每个请求都应具有单独的签名。签名 URL 的有效期应该非常有限(比如 10 秒)。能在这 10 秒内找到 URL 的用户应该能够下载该文件。

仅具有随时间戳而变化的签名可能会破坏(如果不是完全的话)具有签名 URL 的整个目的。

要签署 URL,请使用以下脚本。它就像魅力一样,如果我按时拿到它,我会节省很多时间。另请参阅下面的第 5 点以获得额外的安全性。

http://www.richardpeacock.com/blog/2010/07/amazon-aws-s3-query-string-authentication-php

4) 出于某种原因,FLASH 播放器不播放 MP3 文件的签名 S3 URL。我认为(GUESS)一旦读取了 URL 中的 .mp3 扩展名,他们就会忽略 URL 的一部分。因此,播放器会忽略 URL 的查询字符串部分,并且无法读取文件。不过,他们在我的 S3 Bucker 中播放可公开复制的文件。我一直在为我的网站使用silverlight,而我非常绝望地使用了FLASH解决方案。如果那是受保护的 FLV 文件也无法播放的原因。在这种情况下,您将不得不将整个文件代理给您的客户端,仅使用 URL。我试图避免的解决方案。

5) 为进一步保护您的 URL,请使用以下链接中的一种或多种方法对其进行混淆。它们非常简单。

http://www.pc-help.org/obscure.htm

6) 此外,您的安全方法必须是在 URL 过期之前在浏览器上开始播放文件。到期时间段必须足够短以防止在到期前检测 URL,并且必须足够长以提供 enuf 延迟以开始播放。这或多或少是使用自过期 URL 进行合理安全流式传输的关键。

于 2012-12-02T11:22:26.203 回答
0

回答您的具体问题

您需要注意的问题:我的第一个答案中的第4点;

需要 Amazon S3 库吗?:是的,但不是真的,我第一个答案中的第 3 点,链接中的脚本可以在不参考文档的情况下使用,但您需要了解亚马逊的签名方法

只需使用 1 个签名?:不推荐,无法使用签名的所有目的,可能不会,因为我认为签名强制使用文件路径和名称

音频和图像保护:所有保护都是合理的(假设您的最终用户没有时间或知识限制并且可以编写代码)。

图像:使用 Javascript 禁用右键单击,音频:可以通过一些修补来下载流,这会使您复杂化。

通过禁用 JavaScript 或从 JS Scratchpad / 控制台冲 JS 代码,当然可以下载图像。因此,即使检测 JS 是否启用也无助于保护图像。

于 2012-12-02T12:04:43.673 回答