0

我有自己的 Flash 视频播放器,它向我的服务器上的视频文件发出请求。我使用 Google Chrome,每次使用 Inspect Element 并转到 Network 选项卡时,我都会看到该请求。所以高级用户也可以看到它并下载视频。我该如何保护它?

4

1 回答 1

1

首先,没有万无一失的方法可以阻止用户下载您在您的网站上放置的任何内容。足够先进的用户找到方法。但是,这是我过去用来在服务器端获取 Flash 文件的一种技术:

index.php:

<?php session_start(); ?>
... HTML head stuff
<?php $_SESSION['swf'] = $_SERVER['HTTP_HOST'];
... HTML stuff
<object classid="somestuff" style="height:720px;width:1280px;" id="pmv_september">
    <param name="movie" value="swf.php?v=1">
</object>
... More HTML stuff

我还没有弄清楚如何在 IE pre-10 上进行这项工作,我确信有办法,但我不知道它是什么。所以,在这之后我要做的是拥有一个数据库,所以我可以将“v”参数传递给数据库并获取正确的视频文件:

swf.php

<?php

$videoId = $_GET['v'];
if(!isset($_SESSION['swf']) {
    die('Try harder');
}

// Attempt to prevent caching
unset($_SESSION['swf']);
header('Cache-control: no-cache');
header('Content-type: application/x-shockwave-flash');

// Get the video
$mysqli = new mysqli('localhost','username','password','database');
$stmt = $mysqli->prepare('SELECT url FROM videos WHERE id = ? LIMIT 1');
$stmt->bind_param('i',$videoid);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();

// Pass video to the client
readfile($result);

?>

我隐约记得这段代码是基于我在网上找到的东西,所以如果有人知道原件在哪里,请编辑它以给予他们信任。我快速浏览了一下并找不到它,但由于该站点于 2008 年首次实施,这并不一定令人惊讶。

这适用于url外部 www 根目录,因此这是一种将所有 FLV 保存在难以找到的位置的方法。

于 2013-05-05T08:01:58.633 回答