Запрет на скачивание файлов с сайта
Бывают такие случаи, когда владелец сайта не желает, или не может, отдавать свой сайт целиком своим посетителями. Приведем простой пример:
У вас есть сайт, на котором, вы публикуете обои для рабочего стола. Общий объем сайта - 500Mb, посещаемость 7 000 хостов в сутки, примерный трафик - 300Гб в месяц или 10 Гб в день.
Добавим к этим посетителям еще 20 человек, скачавших ваш сайт целиком. Получаем увеличение трафика на 10Гб или в два раза. Или другими словами 0.28% посетителей создали 50% трафика. Не совсем честно, особенно если вы оплачиваете трафик.
Пример PHP класса
class Flooders {
var $filename ; /* Имя файла, в котором хранится список */
/* запрещенных IP адресов */
var $timeout ; /* Время, на которое производится бан IP */
/* адреса. По умолчанию - 600 (10 минут) */
var $log ; /* Имя лог-файла. */
var $AGENTS ; /* Массив - список разрешенных агентов */
/* */
/* Конструктор - в параметрах можно указать основные настройки */
/* */
/* $filename - имя файла, в котором хранится список */
/* забаненных адресов. */
/* $timeout - время, в секундах, на которое банится IP. */
/* */
/* Пример: $f=new Flooders("ban.txt",3600); */
/* */
function Flooders ( $filename = "flooders.txt" , $timeout = 600 ) {
$this -> filename = $filename ;
$this -> timeout = $timeout ;
$this -> AGENTS = Array ( ) ;
$this -> log = "" ;
}
/* */
/* Задает имя лог-файла. Если имя файла пустое, то лог-файл */
/* не испольщуется */
/* */
function SetLogFileName ( $filename ) {
$this -> log = $filename ;
}
$ip1 = $HTTP_SERVER_VARS [ "REMOTE_ADDR" ] ;
$ip2 = $HTTP_SERVER_VARS [ "HTTP_X_FORWARDED_FOR" ] ;
$ip1 = str_replace ( ":" , "_" , $ip1 ) ;
$ip2 = str_replace ( ":" , "_" , $ip2 ) ;
$d =@ file ( $this -> filename ) ;
if ( ! is_array ( $d ) ) { print "Ошибка чтения из файла "" . $this -> filename . ""." ; return ( false ) ; }
$found = false ;
for ( $i = 0 ; $i < count ( $d ) ; $i ++ ) {
$e = explode ( " : " , $d [ $i ] ) ;
if ( $e [ 1 ] == $ip1 && trim ( $e [ 2 ] ) == $ip2 && $e [ 0 ] + $this -> timeout > $curtime ) { $found = true ; break ; }
}
if ( $http_error == 404 && $found == true ) {
header ( "HTTP/1.0 404 Not Found" ) ;
die ( " \n
Not Found
\n The requested URL " . $HTTP_SERVER_VARS [ "REQUEST_URI" ] . " was not found on this server. \n \n " . $HTTP_SERVER_VARS [ "SERVER_SIGNATURE" ] . " \n " ) ;}
if ( $http_error == 403 && $found == true ) {
header ( "HTTP/1.0 403 Forbidden" ) ;
die ( " \n \n
Forbidden
\n You don't have permission to access " . $HTTP_SERVER_VARS [ "REQUEST_URI" ] . " \n on this server. \n \n " . $HTTP_SERVER_VARS [ "SERVER_SIGNATURE" ] . " \n " ) ;}
return ( $found ) ;
}
/* */
/* Добавления IP адреса в бан-лист */
/* */
$agent = " " . $HTTP_SERVER_VARS [ "HTTP_USER_AGENT" ] ;
for ( $i = 0 ; $i < count ( $this ->AGENTS ) ; $i ++ ) {
if ( strpos ( $agent , $this -> AGENTS [ $i ] ) ) return ;
}
$ip1 = $HTTP_SERVER_VARS [ "REMOTE_ADDR" ] ;
$ip2 = $HTTP_SERVER_VARS [ "HTTP_X_FORWARDED_FOR" ] ;
$ip1 = str_replace ( ":" , "_" , $ip1 ) ;
$ip2 = str_replace ( ":" , "_" , $ip2 ) ;
$d =@ file ( $this -> filename ) ;
if ( ! is_array ( $d ) ) { print "Ошибка чтения из файла "" . $this -> filename . ""." ; }
if ( need_add )
if ( ! empty ( $this -> log ) ) {
$fw = fopen ( $this -> log , "at" ) ;
if ( $fw ) {
fputs ( $fw , date ( "Y-m-d H:i:s" ) . " [" . $ip1 . "
}
$d [ ] = $curtime . " : " . $ip1 . " : " . $ip2 . " \n " ;
}
$fw =@ fopen ( $this -> filename , "wt" ) ;
if ( ! $fw ) { print "Ошибка записи в файла "" . $this -> filename . ""." ; return ; }
foreach ( $d as $e ) fputs ( $fw , $e ) ;
fclose ( $fw ) ;
}
function AddAlowAgent ( $agent ) {
$this -> AGENTS [ ] = $agent ;
}
}
?>
Приветствую.
Есть видеофайл на сайте. Можно ли реализовать следующую схему: Если файл вызывается плейром - просмотр идет, а если файл запрашивается напрямую через строку браузера или какой нить качалкой - то закачки не производилось бы? Я понимаю, что от DownloadHelper-а не спрятаться, но хотя бы усложнить процесс закачки хотелось бы.
Запрет на скачивание изображений
Здравствуйте. Видел сайты на которых нельзя скачивать изображения. При попытке зайти на.
Скачивание файла
И снова здрасте!) Как сделать код для скачивания файла с сайта? например вот текст: Пример его.
Скачивание файла
Добрый день! Есть такая маленькая задачка :) На сервере есть дерриктория в которой куча файлов с.
вот такой код запретит вызов файла из адресной строки.
Здесь запрет стоит на файлы mp3 и avi. Все это в файле .htaccess
я конечно попробую, но честно говоря, если здесь стоит запрет всем, то сможет ли плейер получить доступ для просмотра?
Добавлено через 9 минут
похоже не работает даже через строку все равно предлагает открыть/скачать
так тоже не работает. на счет .htaccess - уверенности не много, но играя на денвере я тупо клал в корень сайта этот файл и работал с RewriteRule - все работало.
не над тупо. обязательно с умным лицом
ладн, значит знаком в общем смысле. а хостинг .htaccess позволяет?
на хостинге используется nginx+apache, поэтому видюшный формат и не отрабатывался файлом .htaccess, сказали изменить расширение и все попрет.вот только надо ли оно мне? как у меня флэш-плейер будет ли играть файл flv если ему расширение изменить?
я вот тут подумал, можно ли как то через htaccess запретить доступ к файлу для всех, но разрешить доступ к файлу, если запрос на него приходит с адреса самого сайта? т.е. например, плеер, который размещается на сайте, запрашивает файл и проигрывает его на странице без проблем (хрен с ним, что через даунлоадхелпер его выцепить можно). а если через строку браузера запросить этот же файл - то запрет. так можно? опять же, слышал что файлы можно отдавать для скачивания на определенное время. подскажите, как это реализуется? подумал, может проще копировать файл из скрытого места, давать ему сложное имя (набор символов) и через час прибивать.
Добавлено через 23 часа 52 минуты
подскажите, плиз, очень надо.
Скачивание файла
Здравствуйте. Обыскал весь интернет но не нашел рабочего кода скачки файлов с сервера. Прошу вашей.
Скачивание файла
Здравствуйте форумчане! У меня такой вопрос. Есть задача организовать скачивание файла. Делаю.
Скачивание файла
Добрый день! Помогите, пожалуйста, разобраться. пишу код для скачивания файла с сервера, но.
Скачивание файла
Вопрос такой. Я на денвере изучаю потихоньку пых, и передо мной стоит задача загрузки и скачивания.
в принципе, все правильно, но когда я даю прямой линк к zip-файлу, я надеялся получить тот же результат, а получаю, что происходит скачивание файла. Мне надо закрыть доступ полностью. Подскажите, как сделать?
Добавлено через 17 часов 59 минут
я ошибся веткой форума? или вопрос не имеет ответа?
RewriteRule для скачивания файла
Помогите составить правило для скачивания файл PDF PHP скрипт генерирует pdf файлы, при.
Запрет скачивания через Torrent
В интернете сижу через провайдера от университета, раньше качал через торрент нормально, сейчас.
Запрет скачивания видео из iframe
Видео выводится так <iframe src="video.php?RID=<?=$_GET?>"></iframe> Использование скрипта.
Запрет скачивания файлов с сайта
добрый день подскажите как запретить только скачивать файлы, из определенной папки, чтобы при.
кстати, если кому будет интересно (может пригодится в будущем), вот ответ техподдержки на подобную ситуацию с файлом JPG (он тупо открывался)
Здравствуйте.
Проблема наблюдается, так как обработка статических файлов (в том числе .jpg) производится сервером nginx, а не Apache, и указанная директива .htaccess не имеет силы.
Для решения проблемы Вы можете указывать другое расширение для статических файлов.
Для примера с нашей стороны файл dr.jpg был скопирован в файл dr.jp, расположенный в той же директории: запросы к нему обрабатывает Apache и доступ блокируется в .htaccess.
Web.config - запрет исполнения скачивания всех файлов из директории
Экспериментировал с "authentication" и "authorization", но так и не подобрал нужной комбинации.
Task скачивания файла
Запутался в одном вопросе, просьба знающих помочь. При открытии формы проверяю, существует ли на.
Скачивания файла, поток
Ребят. есть проблема, как мне реализовать вот эту штуку. Проблема ниже, в коде под // unit.
Кнопка скачивания файла
У меня есть файл размещенный на сайте, мне нужно сделать так что бы при нажатии на кнопку.
Контроль скачивания файла
необходимо проконтролировать, скачался ли файл полностью или нет. Возможноли это на IIS4.0-5.0
Прогресс скачивания файла
Пишу апдейтер для программы, хотелось бы чтобы на виджете был прогресс бар который отображал бы.
Скажу сразу - 100% защиты нет, но Можно максимально Усложнить жизнь тем, кто ворует или использует url изображений.
Вот несколько способов защиты:
1) При помощи Java Script. При помощи JS блокируем возможность вызова правой кнопкой мыши на изображении меню с Сохранить изображение. Как вариант против неопытных пользователей подходит.
2) Состоит в том, чтобы спрятать изображение и отобразить его в качестве background (фона) через стили. Его опять же можно скачать, но только просмотрев CSS-запись, а после введя соответствующий url в строку ввода адреса. Это уже существенно усложнит жизнь тем, кто скачивает Ваши изображения!
Код CSS. Создаём класс со скрытым изображением
и код HTML. Вставляем в соответствующее дял изображение место.
Можно стили сразу в div прописать
3) Данный способ защитит от того, что url Вашего изображения используют на другом сайте, то есть прописывают адрес изображения Вашего сайта, а отображается оно у них. Такое явление называется - хотлинком. Как результат, каждое такое упоминание будет создавать нагрузку на сервер. Для предотвращения подобных действий откроем файл .htaccess в корне Вашего сайта и запишем туда выражение, которое будет Всегда все подобные ссылки перенаправлять на другое, ненужное изображение, да, можно неприличное.
2. Ограничение по количеству просмотренных страниц за определенный промежуток времени.
Тоже достаточно спорный метод. Но надо понимать, что нормальный человек не может просмотреть 60 страниц за 1 минуту. Но с другой стороны и Download агент может делать паузы между скачиванием страниц.
Даже если вы не заблокируете Download агент совсем, то по крайней мере, сильно затрудните скачивание.
Выводы.
Как видите, метода, который бы работал на сто процентов, нет, и вам придется что-то (или кого-то) приносить в жертву. Ниже приведен код PHP класса, который реализует защиту от скачивания, описанную в третьем методе.
1. Запрет по User Agent
User Agent - так называются данные, которые каждый броузер передает серверу. Эти данные могут содержать в себе такую информацию, как тип броузера, операционная система, список плагинов и многое другое.
Это наиболее простой, но наименее эффективный способ. Его преимущество в том, что ни кого лишнего вы не запретите, а недостаток в том, что практический каждый Download агент может маскироваться под стандартные браузеры.
if ( strpos ( $agent , "DISCo Pump" ) ||
strpos ( $agent , "Offline Explorer" ) ||
strpos ( $agent , "Teleport" ) ||
strpos ( $agent , "WebZIP" ) ||
strpos ( $agent , "WebCopier" ) ||
strpos ( $agent , "Wget" ) ||
strpos ( $agent , "FlashGet" ) ||
strpos ( $agent , "CIS TE" ) ||
strpos ( $agent , "DTS Agent" ) ||
strpos ( $agent , "WebReaper" ) ||
strpos ( $agent , "HTTrack" ) ||
strpos ( $agent , "Web Downloader" ) ) {
die ( "Access Denied" ) ;
}
3. Запрет с помощью скрытой ссылки.
Наверное, один из самых правильных методов. Вы должны сделать скрытую ссылку на странице, по которой "живой" человек не перейдет, а Download агент и прочие роботы сделают это. IP адрес с которого производится просмотр скрытой страницы блокируется, скажем, на 3 минуты.
Главный недостаток - это то, что вы, таким образом, блокируете поисковых роботов. Бороться с этим можно двумя способами:
Способы защиты сайта от скачивания
А как лучше?
Оптимальный путь всё-таки другой. Вы можете не препятствовать краже изображений, а использовать это с выгодой для себя. Для этого в любом графическом редакторе, например Photoshop, сделайте заготовку водяного (полупрозорачного) знака сайта, которую потом вставляйте отдельным слоем в том же Photoshop на все свои изображения. В результате, если их и будут красть, то всегда увидят адрес Вашего сайта!
Если хотите сделать на изображении водяной знак, не скачивая специализированных программ, то могу посоветовать он-лайн сервис, который описан в статье Как сделать водяной знак на изображении? Он-лайн сервис
Многие авторы сайтов серьезно опасаются того, что плоды их труда могут похитить конкуренты или простые пользователи ресурса. Хороший веб-программист обязан защитить свой сайт от нежеланного скачивания. Существует множество способов для решения этой задачи.
- Как запретить скачивание сайта
- Как запретить закачку
- Как запретить загрузку сайта
Защитите свой сайт собственными средствами сервера Apache, используя встроенную защиту. Для этого не нужно обладать специальной квалификацией. Примените обязательный ввод имени и пароля посетителя сайта. Только в случае их существования в системе, пользователь получит доступ в директорию, защищаемую данным ресурсом.
Вышеописанный метод нельзя использовать, если нужна строгая защита коммерческой информации. В такой ситуации примените digest-аутентификацию, которую также поддерживает Apache. Здесь имя и пароль передаются в виде кода, поэтому они не могут быть перехвачены хакерами. Но данный вид защиты поддерживается не всеми браузерами.
Создайте для пользователя ограничение на просматриваемые страницы за определенный промежуток времени. Тех, кто будет превышать лимит, можно лишить некоторых прав (наложить бан) на несколько минут. Обязательно предупредите посетителя сайта о тех действиях, нарушение которых повлекут за собой запрет на пользование. Такое соглашение обычно предлагается прочитать и принять.
Примените метод запрета скачивания файлов с вашего сайта с помощью скрытой ссылки. Сделайте ее на странице, куда другой пользователь не сможет перейти. При просмотре скрытой страницы IP- адрес блокируется минуты на три. Учтите, что в этот момент блокируются также и поисковые роботы. В этом случае запретить скачивание можно не сразу после запроса, а после начала непосредственной закачки информации или изображения.
Воспользуйтесь возможностями JavaScript, чтобы можно было блокировать копирование или выделение текстовых и графических элементов на странице сайта. Это довольно доступный способ для различных серверов, чтобы уберечь материал от скачивания.
Переведите каждый элемент страницы в 16-тизначный код ASCII, который закодирован в ISO Latin-1. Сохранив такую страницу, вы можете создать специальный скрипт, декодирующий начальный код (ASCII) и сохраняющий его на диске для чтения.
Читайте также: