2009-08-18 4 views
28

Как предотвратить загрузку изображений и видеофайлов с моего сайта? Является ли это возможным? Что было бы лучшим способом сделать это?Как предотвратить загрузку изображений и видеофайлов с моего сайта?

+0

Вы хотите, чтобы у вас был доступ к ним? Или вы имеете в виду, что они не могут быть спасены из браузера? – jmucchiello

+0

Спасибо за все замечательные ответы :) –

+0

Я не знаю, какова ваша цель, но если вы показываете свои произведения, скажем, вы можете использовать Flash-галереи, чтобы сделать вещи еще сложнее. Они могут делать «Print Screen», но все же это требует времени. – Tarik

ответ

70

Нет, это невозможно.

Если вы видите это, вы можете получить его.

+23

+1. Вы можете сделать это неудобно, вы можете сделать это тяжело, но вы не можете сделать это невозможным. – JMP

+6

Изображения/видео необходимо загрузить в браузер, чтобы пользователь мог их просмотреть. Они будут где-то на компьютере. – Edd

+1

Если вы передаете видео, а не размещаете файл, вы можете сделать его немного сложнее для пользователей, чтобы пилить их. –

1

Нет, это не так. Вы можете заблокировать щелчки правой кнопкой мыши и simillar, но если кто-то захочет загрузить его, он сделает это, поверьте мне;)

+3

Блоки щелчка правой кнопкой мыши ужасно раздражают. Я хочу щелкнуть правой кнопкой мыши ссылку и выбрать «Открыть ссылку в новой вкладке», например. – vit

+0

Блокировка правой кнопкой мыши легко обойти, просто отключив JavaScript в вашем браузере временно. Кроме того, я должен согласиться с остроумием: они действительно ужасно раздражают. – Dubs

1

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

14

Не размещайте их на вашем сайте.

В противном случае это невозможно.

2

вы можете уменьшить возможность, но не устранить его ...

6

Короче говоря, нет. Если кто-то может просматривать изображение или видео в своем браузере, то они по определению загружают его. Так работает Интернет - это клиентский сервер. Все, что вы можете просмотреть в своем браузере (клиенте), было перенесено на ваш компьютер с удаленного веб-сайта (сервера).

+2

и это создание «копии» каждый раз, когда кто-то просматривает ваш сайт, который имеет большое значение для создания беспорядка, который является законом об авторских правах в Интернете. – rmeador

10

Фотографии должны быть загружены для просмотра клиентом. Во многих сценариях видео - это аналогичный случай. Вы можете настроить прокси-скрипты для работы с файлами, но на самом деле это не решает проблему предотвращения получения пользователем собственной копии. Для более подробного обсуждения этой темы см. Вопрос How can I prevent/make it hard to download my flash video?

1

Вы можете пометить папки или файлы, чтобы они не имели доступа для чтения (любой из основных веб-серверов поддерживает это). Это позволяет хранить их на сервере без какого-либо уровня доступа к внешнему миру. Вы можете захотеть сделать это, если у вас есть служба, которая генерирует изображения для кого-либо еще, чтобы загрузить позже, или если вы используете свою учетную запись для доступа к FTP, но не хотите, чтобы кто-либо просматривал файлы. (т. е. загрузите файл .bak на сервер, чтобы кто-то еще запустил FTP).

Однако, как говорили другие, попадание в области авторского права, где люди могут просматривать изображение или видео, но не сохранять их локально, не полностью возможно, хотя есть инструменты, препятствующие незаконному использованию.

6

В стандартном HTML я вообще не знаю.

Вы действительно не говорили, но я предполагаю, что у вас проблемы с людьми. глубокая ссылка на ваш контент. Если это так, и вы открыты на стороне сервера код, я считаю, что это может работать:

  1. Создать страницу, которая принимает числовой идентификатор, переводящий его в файл-сервер пути, открывает этот файл, пишет двоичный код непосредственно в поток ответов.
  2. По запросу страницы, генерировать кучи случайных идентификаторов, и сопоставить их фактические медиа URLs, и сохранить ту сторону сервера объекта отображения где (в сессии?) С ограниченным сроком.
  3. Извлеките страницы со своими медиа ссылки, указывающие на новую страницу мультимедиа с соответствующим идентификатором в качестве запроса строковый аргумент.
  4. Очистить объект сопоставления и сгенерировать все новые ссылки на каждый ответ.

Это:

  1. не остановит людей от загрузки из вашей страницы
  2. определенно не столь легкий, как стандартный HTML
  3. и имеет собственный набор вопросов.

Но это общая схема работоспособного процесса, который может помочь вам избежать глубокой привязки пользователей.

5

Как многие говорили, вы не можете запретить кому-либо загружать контент. Ты просто не можешь.

Но вы можете сделать это сложнее.

Вы можете накладывать изображения с прозрачным div, что не позволит людям щелкнуть правой кнопкой мыши (или, если фон div на изображение будет иметь тот же эффект).

Если вы беспокоитесь о сшивке (то есть другие люди, ссылающиеся на ваши изображения, вы можете проверить HTTP реферер и запросов, которые приходят из области перенаправления, который не является вашим, чтобы «что-то еще».

6

Я хотел бы добавить более философский комментарий. Все намерение Интернета, особенно World Wide Web, заключается в совместном использовании данных. Если вы не хотите, чтобы люди загружали изображение/видео/документ, don ' t положить его в Интернете.Это действительно так просто. Слишком много людей думают, что могут навязать свои собственные правила существующего дизайна. Те, кто хочет размещать контент в Интернете и контролировать его распространение, хотят иметь свой торт и тоже есть.

+3

Философия в порядке, если вы не потратили время и деньги, чтобы сделать отличную фотографию продукта чтобы найти, что какая-то крыса на другом континенте, которая не предлагает поддержку клиентов, присвоила ваше фотоискусство и подрывает ваши цены. –

3

Также не мешает водяным знакам ваши изображения с помощью Photoshop или даже в Lightroom 3. Убедитесь, что водяной знак прозрачен и находится на заметном месте на вашем изображении. Таким образом, если он будет загружен, по крайней мере, вы получите рекламу!

1

Поместите свое изображение или видео в формате Flash. Прекрасно работает.

+0

Есть ли инструмент, который работает на сервере linux, который преобразует mp3 в swf? – Pons

+3

Три слова: Flash Decompiler Трилликс. Также отлично работает. – Fordi

0

Вставьте прозрачный GIF 1px х 1px только внутри <body> тега:

<body><img src="route-to-images/blim.gif" class="blimover"> 

Затем стиль его с этим:

.blimover { 
    width: 100% !important; 
    height: 100% !important; 
    z-index: 1000 !important; 
    position: absolute !important; 
    top: 0 !important; 
    left: 0 !important; 
} 

Это удалит любую функциональность щелчка со страницы, но он уверен, останавливает людей, крадущих любой контент!

Вы можете применить их к <div>, <section>, <article> и т. Д., Просто укажите имя и не разрешайте копирование и/или изображения.

Ничто не останавливает screengrab, хотя ... ...

+2

Предотвращение функциональности щелчка не так хорошо, и иногда это бросает вызов другим целям сайта –

+0

Большинство браузеров проверяют элемент, и этого достаточно, чтобы загрузить любой тип объекта, отображаемого в браузере. – Oluwatumbi

+0

Конечно, я согласен с обоими этими комментариями, но после объяснения им обоих и более для клиента они просто хотели, чтобы 1-я линия защиты пыталась предотвратить копирование копии. Клиент хочет, чтобы клиент получил, объяснил ловушки, а затем выставил счет соответственно;) – redplanet

0

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

  • Каждая ссылка на «ЦСИ» в теге изображения фактически представляет собой запрос отправить в контроллер на сервере,
  • сервер проверяет все параметры доступа в права этого конкретного пользователя, и возвращает изображение, если пользователь должен иметь доступ к нему,
  • все изображения хранятся в каталоге , который не доступен напрямую из браузера.

Выгода:

  • Пользователь не будет иметь доступ к чему-либо, что вы не намерены его/ее, чтобы иметь доступ к

Минус:

  • Те запросы медленные .. особенно есть много изображений на одной странице. Я не нашел хорошего способа ускорить это на самом деле.
0

Вы можете установить изображение в качестве фонового изображения и иметь прозрачное изображение переднего плана.

0

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

Есть несколько трюков, вы можете попробовать:

1.) Использование вспышки как YouTube и многие другие сайты, как http://www.funnenjoy.com делает.

2.) Парасимметричная или фоновая настройка изображения (но пользователи с небольшим смыслом могут легко сэкономить все ресурсы, открыв элемент проверки или другой вариант разработчика).

3.) Вы можете отключить правый клик и специальные клавиши, такие как CTRL + S, а другие - с JavaScript, но основным недостатком является то, что если пользователь отключит JavaScript, все наши трюки проваливаются.

4.) Сохранить изображение в онлайн-каталогах (если у вас есть полный доступ к веб-серверу) и читать эти файлы с серверными языками, такими как PHP, каждый раз, когда требуется изображение/видео и время от времени меняет идентификатор изображения или создает скрипт, который может автоматически изменять идентификатор после каждого доступа.

5.) Используйте .htaccess в apache, чтобы предотвратить увязку ваших изображений с другими сайтами. вы можете использовать этот сайт для автоматической генерации .htacess http://www.htaccesstools.com/hotlink-protection/

1

Вот как я это делаю, если кто-то в будущем задается вопросом.

Я положил это в.файл .htaccess в корневом сервере:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com.*$ [NC] 
RewriteRule \.(mp4|avi)$ - [F] 

Это останавливает их от говорить будет domain.com/videos/myVid.mp4, а затем сохранить его оттуда.

+0

Этот подход ранее был рекомендован для stackoverflow [здесь] (http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from -двойный-url-доступ) Руслана Осипова. Другие сообщили об успехе в этом деле. –

-1

Я думаю, что лучший способ: ПОТОК ВИДЕО В ОТДЕЛЬНЫХ ЭНЕРГИЯХ.

Есть видеоуслуги, такие как vzaar, которые имеют эту функциональность. Насколько я знаю, это будет очень трудно загрузить напрямую. По крайней мере, для 95% людей.

Но, конечно, если видео воспроизводится на экране, люди могут просто использовать экранный рекордер и какое-то простое программное обеспечение для записи звука с аудиовыхода (но ему или ей придется играть ПОЛНОСТЬЮ, чтобы сохранить его, полностью неудобно).

3

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

  • Общие
    • Наложите respecitve содержание с прозрачным <DIV> или (как описано в некоторых ответах на этот вопрос)
    • Откройте веб-сайт в наборе фреймов, поэтому сохранение может пропустить содержимое фрейма.
    • Открыть веб-сайт через window.open(), чтобы скрыть панель меню.
    • Отключить щелчок правой кнопкой мыши по JavaScript (не рекомендуется из-за всех побочных эффектов для удобства использования)
    • Загрузите HTML-код страницы из другого файла (который может проверять конкретный референт или может быть ROT13) с помощью JavaScript, поэтому сложнее получить доступ к исходному коду.
    • Скажите браузеру, что весь контент display:none для принтера (что-то вроде @media print { body, div, p { display: none } })
    • Использование JavaScript, чтобы скрыть содержимое перед тем, как клиент делает скриншот (см Stop User from using “Print Scrn”)
    • Попробуйте отключить или перезаписать буфер обмена (см this post)
  • изображения
    • не используйте <img> тег для изображений, но установить изображение в качестве фона для <DIV>
    • Оберните изображения в SVG или флеш-ролики, чтобы сделать их очень трудными для доступа в удобном для использования формате.
    • Отключить кеширование изображений (через тег <meta> или путем установки соответствующего заголовка на серверной доставке), поэтому они не хранятся в кеше браузера (не подлежащие доступу на компьютере клиента).
    • Вырезать изображение по частям, так что требуется дополнительная работа по восстановлению всего изображения.
    • Добавить onmousedown события на изображения, например, отобразить предупреждение об авторских правах.
    • Доставьте изображение через скрипт сервера (например, PHP) и проверьте референт.
  • Видео
    • видео поток для предотвращения простой загрузки через URL.
    • Оберните видео в Flash-ролик.
    • Используйте некоторые неприятные форматы, поддерживающие DRM.
  • Тексты
    • Сделать текст неактивен (см How to make HTML Text unselectable)
    • Дополнительно к накладыванию, оберните текст в JavaScript (например, после ROT13 или загружаются динамически из второго файла), так что текст не непосредственно доступный в исходном коде.
    • Преобразовать тексты к изображениям (это может уменьшить качество изображения), SVGs или флэш-

Опять же, я повторяю, что все это не остановит опытный пользователь от захвата содержимого (например, путем принятия screenshop и - необязательно - запустить OCR на нем). Иногда это так же просто, как использование инструментов разработчика браузера или использование веб-сайта без JavaScript. Тем не менее, это даст пользователям неопытности трудное время, поэтому они могут выглядеть как нечто более легкое для захвата.

Также имейте в виду, что вышеупомянутые методы будут влиять на поисковые системы при чтении содержимого страницы (если вы заинтересованы в их блокировке, начните с robots.txt).

Благодарим вас за любые другие идеи в дополнение к вышеуказанному списку!

1

Это старый пост, но для видео вы можете захотеть использовать MPEG-DASH для обфускации ваших файлов. Кроме того, это обеспечит лучший потоковый опыт для ваших пользователей без необходимости использования отдельного потокового сервера. Более подробная информация в этом посте: How to disable video/audio downloading in web pages?

2

Если вы используете PHP, лучший способ управлять ей .htaccess, вы должны поместить ваши файлы, изображения и видео на рассмотрении в отдельной папке/директории, и создать новый .htaccess файл в этом каталоге с ниже:

RewriteEngine On 
RewriteCond %{REQUEST_URI} \.(mp4|mp3|avi)$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://sample.com/.*$ [NC] 
RewriteRule ^.* - [F,L] 

Первая линия %{REQUEST_URI} предотвратит получение файла через веб-браузер, или через curl. Вторая строка %{HTTP_REFERER} предотвратит доступ к imahe/видео с помощью HTML-тегов <img> или <video> с любого сайта, за исключением исключения !, который вы предоставляете вместо http://sample.com/, который обычно должен быть вашим сайтом.

Вы также можете посмотреть мой вопрос и принятый ответ here для получения дополнительных трюков в браузере.

0

Если вы хотите, чтобы только авторизованные пользователи получали контент, как клиенту, так и серверу необходимо использовать шифрование.

Для видео и аудио хорошее решение Azure Media Services, которое имеет защиту и шифрование контента. Вы вставляете медиа-плеер Azure в свой браузер и транслируете видео с Azure.

Для документов и электронной почты вы можете посмотреть Azure Rights Management, в котором используется специальный клиент. К сожалению, в настоящее время он не работает в обычных веб-браузерах, за исключением одноразовых одноразовых кодов.

Я точно не знаю, насколько это безопасно. Как указывали другие, с точки зрения безопасности, как только эти загруженные байты находятся в ОЗУ «атакующего», они так же хороши, как и ушли. В этом случае решение не будет на 100% безопасным (пожалуйста, поправьте меня, если я ошибаюсь). Как и в случае с большей безопасностью, цель состоит в том, чтобы сделать ее сложнее, поэтому 99% не беспокоят.

Смежные вопросы