【问题标题】:differentiate flash request and request came from browser's address bar,,区分 flash 请求和请求来自浏览器的地址栏,,
【发布时间】:2010-12-06 11:15:58
【问题描述】:

嗨,我试图阻止下载 mp3 歌曲,所以我想问你们,是否可以区分 flash 请求和正常的 http 请求,我检查了 $_SERVER 变量但找不到任何区别,应该怎么做我做? 请提供任何解决方案,

【问题讨论】:

  • 你能控制 Flash 处理请求的方式吗?
  • 简短的回答是否定的,除非您可以让 Flash 发送一些额外的密钥或标识符。
  • @Shadow 向导,播放器是 xspf,我认为请求将由 swf 文件生成

标签: php javascript flash


【解决方案1】:

我将描述一种实现您想要的方法,它并不简单,但也不太复杂。也不确定它是否是最好的,但它应该可以工作。

第一步:不要直接链接到 mp3 文件(例如 /MySongs/song.mp3),而是将文件放在网站根文件夹之外,并在 URL 上设置获取所需文件的页面并以正确的内容类型和所有内容发送文件内容作为结果,例如GetSong.php?songname=song3

一旦你有了这个,你就可以更好地控制文件。

第二步:在flash参数中,把/MySongs/song.mp3改成上面的。确保它正常工作。请注意,这仍然没有解决任何问题。

第三步: 每当用户向包含抓取歌曲的 Flash 的页面发出请求时,使用请求的确切时间戳分配 Session 变量(或 PHP 中的等效变量)。在这里,我依赖于 flash 将在同一时刻发送请求的事实。

最后一步:在GetSong.php中检查上面的Session变量,只有当当前时间与Session中的时间戳完全匹配时才发送文件,可能允许毫秒级的余量。

精明的用户会破解它的工作原理,可以绕过它,但它应该让大多数普通人尝试获取歌曲,即使他们使用工具查看 Flash 是如何请求歌曲的。

【讨论】:

  • 我已经完成了前两个步骤,但我无法理解第三步和最后一步,在这里我解释一下场景,,我的主页上提供播放按钮的歌曲很少,当我单击播放按钮歌曲将播放,使用 xspf 播放器。所以在加载页面时创建带有时间戳变量的会话是有问题的
  • @user532162 - 您将此问题标记为 PHP,因此我假设实际页面是用 PHP 编写的。对?如果是这样,请在您的 PHP 代码中创建会话。此外,您必须以某种方式 传递歌曲名称 - 发布您的主页代码也许它会提示正在发生的事情,我们将有更好的机会提供帮助。 (编辑您的原始帖子并在那里添加代码)
【解决方案2】:

不,当您使用 Flash 的 getURL 或 navigateToUrl 方法时,它会发送一个正常的 http 数据包,您将无法将其与正常的浏览器请求区分开来。

但是 SWF 文件本身可以是域锁定的,并且即使这种技术是可破解的,如果他们可以下载您的 SWF 文件,但它被广泛使用,同时,网站管理员尝试通过控制 Apache 和 .htaccess 指令来阻止下载。

编辑:是的,您可以直接从您的 SWF 文件发送标头。

var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(whatever_url);
request.requestHeaders.push(new URLRequestHeader("pragma", "no-cache"));
request.requestHeaders.push(new URLRequestHeader("Expires", "Thu, 01 Jan 1970 00:00:00 GMT, -1"));
request.requestHeaders.push(new URLRequestHeader("Cache-Control", "no-cache, no-store, must-revalidate"));
loader.load(request);

例如,此代码声称防止在用户的浏览器缓存目录中缓存 SWF 文件。

【讨论】:

  • 是的,我正在使用 xspf swf 文件,还控制 htaccess,拒绝任何不是来自我的站点的请求。那么是否可以通过 swf 文件发送带有请求头的任何参数?
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 2012-01-30
  • 2020-09-16
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多