INVERSER
INVERSER
Powerful web-based technologies
Powerful web-based technologies
Email:
Mobile:
YouTube

Если на Вашем сайте Вы используете отдельный плеер для видео и не хотите, чтобы он был кем-то украден, то существует некоторый PHP код, способный защитить плеер.

Для примера я взял HDWebPlayer. Итак, у меня есть три домена, которые используют между собой плеера на своих страницах. То есть, например, usemind.org использует плеер teachstore.org и наоборот, также с d.usemind.org

Поэтому у нас есть условие: если плеер используется на этих трех доменах, то мы его показываем, если же на другом, то показываем что-то другое, чтобы предотвратить необоснованную кражу видеоматериала на других ресурсах.

Код очень простой и не имеет каких-то хитрых изощрений, однако, на данном этапе мне этого хватает:

<?php
defined('_JEXEC') or die("<meta http-equiv='refresh'; content='0; url=http://ВАШ_ДОМЕН.org/'>"); // защита от прямого
// обращения к файлу происходит перенаправление на главную

$referer = $_SERVER['HTTP_REFERER'];
$length = substr($referer, 0, 18);

if ( $length == "http://ОСНОВНОЙ_ДОМЕН.org" or $length == "http://ДОПОЛНИТЕЛЬНЫЙ_ДОМЕН.o" or $length == "http://ЕЩЕ_ОДИН."){

// обратите внимание, что название домена должно быть
// не более 18 символов, включая http://...
//если требуется больше, то измените 18 на свою
// цифру выше ^^ substr($referer, 0, 18)
// не забудьте добавить www.ВАШ_ДОМЕН.org
jimport('joomla.application.component.model');

class WebplayerModelPlayer extends JModel {

function __construct() {
parent::__construct();
}

function getplayer()
{
$player = JPATH_COMPONENT.DS.'player.swf'; // настоящий плеер, отображаемый для пользователей Вашего сайта

ob_clean();
header("content-type:application/x-shockwave-flash");
readfile($player);
exit();
}
}
}
else
{jimport('joomla.application.component.model');

class WebplayerModelPlayer extends JModel {

function __construct() {
parent::__construct();
}

function getplayer()
{
$player = JPATH_COMPONENT.DS.'referrer.swf'; // подделка, отображаемая для воров
ob_clean();
header("content-type:application/x-shockwave-flash");
readfile($player);
exit();
}
}}
?>

Не забудьте заменить все после трех $length и добавить Ваш домен с www.example.com! Не забывайте, что длина домена вместе с www и http:// должна быть не более 18 символов. Если требуется более, то меняйте в 6 строке.

Данный код размещен в файле, отвечающем за вывод файла player.swf сам файл находится в /components/com_webplayer/models/player.php . То если Вы используете HDWebPlayer, то Вам ничего не надо менять, кроме как поставить любой файл вместо referrer.swf

Однако, не все пользователи интернета возвращают REFFERER, который мы проверяем с помощью PHP в начале кода, следовательно, вместо плеера можно отдавать тот же плеер, но с ссылкой на Ваш сайт, например.

Есть еще один способ:

<?php
$srurl = $_SERVER['HTTP_REFERER']; //узнаем откуда пользователь запрашивает наш плеер
$domain = array((strstr($srurl, "usemind.org")),(strstr($srurl, "teachstore.org")));
if (in_array($srurl, $domain)) {
 echo "player.swf";//если в массиве $domain мы находим совпадения с нашими доменами, то отдаем нормальный плеер
} else {
 echo "player_for_referer.swf";//если же НЕ находим, то отдаем со ссылкой на наш сайт
}
?>

Можно также сделать отдельный PHP файл с этим кодом, но добавить заголовки, как для swf файла:

header('Content-disposition: attachment; filename='.$q);//где $q = имя файла самого плеера
header('Content-type: application/octet-stream');
header('Content-Length: '.filesize($file)); // файл
header("Pragma: no-cache");
header("Expires: 0");
echo $file;//отдаем файл для отображения в браузере

а также переименовать его в phpfile.swf.php и добавить в папку с ним файл .htaccess с кодом:

RewriteEngine on
# Rewrite /foo/bar to /foo/bar.php
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L]
# Return 404 if original request is /foo/bar.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
# NOTE! FOR APACHE ON WINDOWS: Add [NC] to RewriteCond like this:
# RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$" [NC]

Таким образом, пользователь, обращаясь к файлу phpfile.swf будет получать сам плеер. А этот же PHP файл phpfile.swf.php доступен как phpfile.swf

Как защитить swf плеер

Задать вопрос

Отзывов пока нет
Хостинг SSD, VPS, сервера
от 7.34$/365 дней
подробнее