Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > online просмотр клипа


Автор: lasalexx 26.1.2007, 11:11
хочу на сайте сделать online просмотр клипов, но так что б их нельзя было переписывать на комп. то есть я должен скрыть реальный адрес файла. Можно ли это осуществить?

Автор: skyboy 26.1.2007, 11:30
lasalexx, полностью скрыть низзя - откуда же клиент будет получать данные? даже если ты будешь отдавать им данные через PHP скрипт с адресом, скажем, "mysite.org/video.php?id=25612345", всё равно клиент сможет извернуться и сохранить поток, который ты ему передал(под FireFox, по крайней мере, плагины есть... да и обычный менеджер загрузок, увидев в заголовке, скажем, "Content-type: image/png" может догадаться сохранить переданные данные в png). Можно проверять user-agent, refferer и прочие заморочки, но их можно подделать... 

Автор: Mal Hack 26.1.2007, 14:41
Использовать flash или JavaApplet

Автор: windoctor 26.1.2007, 14:43
Вот JavaApplet мне кажеться реальная тема

Автор: skyboy 26.1.2007, 14:45
Mal Hack, а можно пример реализации? уж больно интересно -  неужто никак не перехватить запросы? smile

Автор: GZep 26.1.2007, 15:39
http://www.xakep.ru/post/34371/default.asp подойдет?

Автор: Alex13 27.1.2007, 17:57
Mal Hack, если юзер с мозгами, то он перехватит поток еще до того, как он попадет в браузер. Например, с помощью burpsuite

Автор: Mal Hack 27.1.2007, 18:00
Alex13, ну знаешь ли... От захвата видео ничего не спасет по любому...

Автор: GZep 28.1.2007, 01:02
Очень жаль, что захват видео - дело времени... smile печально...
На мой взляд на самому, если есть время и желание, писать алгоритм шифровки видео, чтобы захватывать было сложнее, только не очень навороченный - чтобы флеш справиться смог

Автор: Alex13 28.1.2007, 14:55
GZep, на крайняк, можно действительно шифровать траффик, но от захвата видео с экрана, как мудро заметил Mal Hack ничего не спасет.

Автор: patriot_kv 1.2.2007, 00:08
Цитата

даже если ты будешь отдавать им данные через PHP скрипт с адресом, скажем, "mysite.org/video.php?id=25612345"

а как отправить его в браузер?

Автор: Alex13 3.2.2007, 13:20
patriot_kv, кого? Поток?
Наверное, просто ввести в строку адреса и нажать Переход

Автор: skyboy 3.2.2007, 13:39
Цитата(patriot_kv @  31.1.2007,  23:08 Найти цитируемый пост)
а как отправить его в браузер? 

а как ты отправляешь gif-картинку? сначала отправляешь заголовок(для gif он, вроде, будет Content-Type: image/gif), потом отсылаешь binary-данные, а браузер сам уже решает, как их отобразить. Соотвественно, скрипт video.php может согласно параметру id загружать какой - то файл и передавать его содержимое, предварительно отправив нужные заголовки(не знаю точно, как они будут для видео выглядеть. Может, Content-Type: video/mpeg?)

Автор: patriot_kv 4.2.2007, 02:54
Цитата

сначала отправляешь заголовок(для gif он, вроде, будет Content-Type: image/gif), потом отсылаешь binary-данные

делал тоже самое.
Код

header("Content-Type: video/x-msvideo");
fpassthru($file);

и так:
Код

$true_name="kvn.avi"; // настоящее имя файла
$f_size=filesize($true_name);
 
header('HTTP/1.1 200 Ok');
header("Content-Type: video/x-msvideo");
header("Content-Length: $f_size");
header('Connection: close');
  
$f=fopen($true_name, 'rb');
$downloaded=0;
  while(!feof($f) and !connection_status() and ($downloaded<$f_size)) {
     echo fread($f, 512000);
    $downloaded+=512000;
      flush();
  }
fclose($f);

открываю ссылку по протоколу mms:// - Media Player начинает загрузку видеофайла, но пишет, что не может воспроизвести
открываю ссылку по протоколу http:// - браузер пытается сохранить файл
прописываю ссылку внутри 
Код

<embed src="mms://..." type="application/x-mplayer2" name="mediaPlayer" />

не открывает ссылку

Автор: Alex13 13.2.2007, 07:58
patriot_kv, а если дать прямую ссылку на файл, то все работает?

Автор: patriot_kv 13.2.2007, 12:10
нет.
может не нужно mms:// ?

Автор: Alex13 16.2.2007, 12:29
patriot_kv, если не секрет, то зачем?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)