Форум программистов, компьютерный форум, киберфорум
Наши страницы
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 400
1

Защита файлов от прямого скачивания с других сайтов

17.02.2013, 16:37. Просмотров 3182. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста, как в .htaccess правильно прописать код, для защиты видео файлов, чтоб при копировании ссылки моего видео и вставки его на другой сайт, оно не воспроизводилось ? Я сделал так:
HTML5
1
2
3
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysait123.16mb.com/ [NC]
RewriteRule .*\.(flv)$ - [F]
но после этого у меня перестало воспроизводить видео, что нужно сделать чтоб оно работало как нужно ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 16:37
Ответы с готовыми решениями:

Защита аудиофайла от скачивания и перезаписи
Добрый день! Очень нужна помощь/совет/грамотная консультация. Пытаемся максимально защитить...

Скрипт скачивания файла с других сайтов
Можно ли реализовать скрипт скачивания файлов с другого сайта в папку своего сайта с помощью php?...

Защита файлов от прямого обращения
Как защитить файлы, например как в дле, от прямого запроса. например если я напрямую обращусь...

защита от скачивания
На сайте у меня папка с картинками и флэш оболочка, которая через xml достает из этой папки...

Защита от скачивания всего сайта
Тут заморочился над одним вопросом - "Скачать сайт целиком". Насколько я понял, практически от...

8
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16768 / 6655 / 869
Регистрация: 12.06.2012
Сообщений: 19,894
Завершенные тесты: 1
17.02.2013, 16:59 2
gigs, этот код не это делает вообще.. Он не дает на Вашем сайте воспроизводить видео, по которому перешли не с вашего сайта, причем именно не с главной страницы. И надо так
Код
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysait123\.16mb\.com/$ [NC]
0
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 400
17.02.2013, 17:10  [ТС] 3
сделал так

HTML5
1
2
3
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysait123\.16mb\.com/$ [NC]
RewriteRule .*\.(flv)$ - [F]
но всеравно видео не показывает
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16768 / 6655 / 869
Регистрация: 12.06.2012
Сообщений: 19,894
Завершенные тесты: 1
17.02.2013, 17:12 4
Цитата Сообщение от gigs Посмотреть сообщение
Код
RewriteRule .*\.(flv)$ - [F]
Код
RewriteRule ^.*\.(flv)$ - [F]
Это будет работать только при переходе с главной страницы
1
17.02.2013, 17:12
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 400
17.02.2013, 17:22  [ТС] 5
Цитата Сообщение от KOPOJI Посмотреть сообщение
Код
RewriteRule ^.*\.(flv)$ - [F]
Это будет работать только при переходе с главной страницы
а если у меня видео находится на странице test.php которая доступна по ссылке mysait123.16mb.com/test.php то что тогда нужно прописать ?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16768 / 6655 / 869
Регистрация: 12.06.2012
Сообщений: 19,894
Завершенные тесты: 1
17.02.2013, 17:23 6
Можно так попробовать
Код
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysait123\.16mb\.com.*?$ [NC]
0
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 400
17.02.2013, 17:41  [ТС] 7
ну харашо, а я еще пробовал генерировать временные ссылки на файл с видео, делал это так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$timeout = 100; // время
$filesdir = "download/"; // Слешь в конце
 
//
$secret = md5((int)(time() / $timeout)); //Всегда целое число, меняется раз в $timeout секунд;
 
if( isset($_GET['key']) ) {
if( ($_GET['key'] == $secret) && //проверка ключа
strlen($_GET['fn']) && file_exists($filesdir.$_GET['fn']) ) { //проверка файла
 
readfile($filesdir.$_GET['fn']);die; //читаем файл
} else {
 
header ( 'HTTP/1.1 404 Not Found' );//Файл не найден
die;
}
}
?>
и подставлял ссылку в плеер:
HTML5
1
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" height="350" width="600"><param name="filename" value=""><param name="ShowStatusBar" value="True"><embed src="?fn=film1.flv&key=<?PHP echo $secret;?>" showstatusbar="1" type="video/x-ms-asf" height="380" width="500"></object>
но видео почему то не проигрывает, можете мне помочь с этим ?
0
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 400
19.02.2013, 23:47  [ТС] 8
я частично решил проблему, прописал в .htaccess такой код:

HTML5
1
2
3
RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysait123\.16mb.com/ [nc]
RewriteRule \.(jpeg|jpg|gif|png|css|mov|swf|avi|vob|zip|m3u|txt|doc|flv|mp3|mp4)$ - [nc,F,L]
но оно нормально работает только для картинок, а вот с видео файлами наоборот не работает, то есть когда я у себя на сайте захожу на страницу где у меня находится код видеоплеера то видео на моем сайте не проигрывается. Помогите разобратся почему.
0
phantom12345
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 10
03.03.2015, 16:50 9
Необходимо защитить архивы от прямого скачивания, например, чтобы невозможно было скачивать, введя в адресную строку http://localhost/file.zip

Вставляю следующий код в .htaccess:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?localhost/page1\.php.*$ [NC]
RewriteRule \.(zip|rar|arj)$ - [F]



Для проверки создаю две страницы в DocumentRoot - page1.php и page2.php с одинаковым содержанием (ссылка http://localhost/file.zip) и закидываю файл file.zip туда же.

Результат, как и ожидался, следующий: ссылка на странице http://localhost/page1.php позволяет скачивать архив, а на http://localhost/page2.php - нет.

Но мне нужно, чтобы архивы невозможно было скачивать напрямую, то есть, вводя http://localhost/file.zip в адресной строке или менеджере закачек. Существует ли такая возможность, может кто что-нибудь подскажет?
0
03.03.2015, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2015, 16:50

Include - защита от прямого доступа
Есть страница которая собирается из других файлов с помощью include. Есть очень малая, но...

Защита контента от прямого доступа
Здравствуйте! if (empty($_SERVER)) die(); На сколько серьёзно можно относиться к такой...

Защита рисунка от скачивания средствами PHP
Каким образом средствами РНР сделать так, чтобы когда пользователь пытался скачать рисунок со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru