0
我有我自己的Flash視頻播放器,向我的服務器上的視頻文件發出請求。我使用谷歌瀏覽器,每次使用Inspect Element並轉到網絡選項卡時,我都會看到該請求。所以高級用戶也可以看到它並下載視頻。我該如何保護它?從瀏覽器隱藏Flash電影的請求
我有我自己的Flash視頻播放器,向我的服務器上的視頻文件發出請求。我使用谷歌瀏覽器,每次使用Inspect Element並轉到網絡選項卡時,我都會看到該請求。所以高級用戶也可以看到它並下載視頻。我該如何保護它?從瀏覽器隱藏Flash電影的請求
首先,沒有辦法阻止用戶下載任何你放在你的網站上的東西。誰先進的足夠將找到一種方法。然而,這是我在過去用來獲取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前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-05 08:50:48