Как предотвратить загрузку изображений и видеофайлов с моего сайта?

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


person Haim Evgi    schedule 18.08.2009    source источник
comment
Вы имеете в виду, что для доступа к ним требуется логин? Или вы имеете в виду запретить их сохранение из браузера?   -  person jmucchiello    schedule 18.08.2009
comment
Я не уверен, в чем ваша цель, но если вы показываете свои художественные работы, скажем, вы можете использовать Flash-галереи, чтобы усложнить задачу. Они могут делать вещи Print Screen, но все же на это нужно время.   -  person Tarik    schedule 22.10.2011


Ответы (25)


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

Если вы это видите, вы можете это понять.

person Josh Leitzel    schedule 18.08.2009
comment
Изображения / видео должны быть загружены в браузер, чтобы пользователь мог их увидеть. Они будут где-то на своем компьютере. - person Edd; 18.08.2009
comment
Если вы транслируете видео вместо того, чтобы размещать файл, вы можете усложнить пользователям его просмотр. - person Chris Ballance; 19.08.2009
comment
Или вы можете сделать что-нибудь ужасное, например, встроить изображения во флэш-объект. - person Alfo; 21.04.2013

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

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

person Chris Ballance    schedule 18.08.2009

Изображения должны быть загружены для просмотра клиентом. Видео похожи во многих сценариях. Вы можете настроить прокси-скрипты для обслуживания файлов, но это не решает проблему предотвращения получения пользователем собственной копии. Для более подробного обсуждения этой темы см. Вопрос Как предотвратить / затруднить загрузку моего флеш-видео?

person Sampson    schedule 18.08.2009

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

  • General
    • Overlay the respecitive contents with a transparent <DIV> or a transparent image (as described in some answers to this question)
    • Откройте веб-сайт в наборе фреймов, поэтому при сохранении может пропустить содержимое фрейма.
    • Откройте веб-сайт через window.open(), чтобы скрыть строку меню.
    • Отключить щелчок правой кнопкой мыши через JavaScript (не рекомендуется из-за всех побочных эффектов для удобства использования)
    • Загрузите HTML-код страницы из другого файла (который может проверять конкретный реферер или который может быть ROT13) через JavaScript, поэтому получить доступ к исходному коду будет сложнее.
    • Сообщите браузеру, что весь контент display:none для принтера (что-то вроде @media print { body, div, p { display: none } })
    • Используйте JavaScript, чтобы скрыть контент, прежде чем клиент сделает снимок экрана (см. Запретить пользователю использовать« Print Scrn »)
    • Попробуйте отключить или перезаписать буфер обмена (см. этот пост)
  • Images
    • Do not use the <img> tag for images but set the image as background for a <DIV>
    • Оборачивайте изображения в файлы SVG или Flash-ролики, чтобы сделать их очень труднодоступными в удобном для использования формате.
    • Отключите кеширование изображений (с помощью тега <meta> или путем установки соответствующего заголовка при доставке на сервер), чтобы они не сохранялись в кеше браузера (всегда доступном на компьютере клиента).
    • Разрезать изображение на части, поэтому потребуется дополнительная работа для восстановления всего изображения.
    • Добавьте к изображениям onmousedown событий, например, отобразите предупреждение об авторских правах.
    • Доставьте изображение через серверный скрипт (например, PHP) и проверьте ссылку.
  • Videos
    • Stream videos to prevent simple downloading via URL.
    • Оберните видео во Flash-ролик.
    • Используйте какой-нибудь неприятный формат, поддерживающий DRM.
  • Texts
    • Make text unselectable (see How to make HTML Text unselectable)
    • Помимо наложения, оберните текст в JavaScript (например, после ROT13 или загружается динамически из второго файла), чтобы текст не был напрямую доступен в исходном коде.
    • Преобразование текстов в изображения (это может снизить качество отображения), SVG или Flash

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

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

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

person BurninLeo    schedule 28.01.2016

Хочу добавить более философский комментарий. Вся цель Интернета, особенно Всемирной паутины, состоит в том, чтобы обмениваться данными. Если вы не хотите, чтобы люди загружали изображение / видео / документ, не размещайте их в Интернете. Это действительно так просто. Слишком много людей думают, что могут навязать свои правила существующему дизайну. Те, кто хочет размещать контент в сети и контролировать его распространение, тоже хотят получить свой пирог и съесть его.

person A. L. Flanagan    schedule 18.08.2009
comment
Философия хороша, если вы не потратили время и деньги на создание отличной фотографии продукта только для того, чтобы обнаружить, что какая-то крыса с другого континента, не предлагающая поддержку клиентов, присвоила ваше фотоискусство и занижает ваши цены. - person Mike O'Connor; 08.09.2015
comment
Люди, которые занимаются продажей платных видео или веб-приложений для фотографий, всегда будут пытаться защитить свои данные. Только посмотрите, насколько сложно обычному пользователю загрузить видео с URL-адреса видео на YouTube, даже если он занимается рекламным бизнесом. - person John Balvin Arias; 07.06.2018

Если вы используете 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} предотвратит доступ к изображению / видео с помощью HTML-тегов <img> или <video> с любого веб-сайта, кроме исключения !, которое вы указываете вместо http://sample.com/, которым обычно должен быть сам ваш веб-сайт.

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

person Hasan A Yousef    schedule 13.05.2017

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

person Dan Diplo    schedule 18.08.2009
comment
и именно это создание копии каждый раз, когда кто-то просматривает ваш сайт, имеет большое значение для создания беспорядка, который является законом об авторском праве в Интернете. - person rmeador; 18.08.2009

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

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

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

Этот :

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

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

person John MacIntyre    schedule 18.08.2009

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

Но вы можете усложнить задачу.

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

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

person David Wolever    schedule 18.08.2009

вы можете уменьшить вероятность, но не исключить ее ...

person Community    schedule 18.08.2009

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

person Jordan    schedule 04.11.2009

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

Я поместил это в файл .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, а затем сохранить его оттуда.

person agon024    schedule 28.06.2014
comment
Этот подход ранее рекомендовался в stackoverflow [здесь] (stackoverflow.com/questions/10236717/) Руслана Осипова. Другие сообщили об успехе с ним. - person Mike O'Connor; 08.09.2015

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

person fphilipe    schedule 18.08.2009
comment
Блоки щелчка правой кнопкой мыши ужасно раздражают. Я хочу, например, щелкнуть ссылку правой кнопкой мыши и выбрать «Открыть ссылку в новой вкладке». - person vit; 18.08.2009
comment
Блокировку щелчка правой кнопкой мыши легко обойти, просто временно отключив JavaScript в браузере. Кроме того, я должен согласиться с Витом: они действительно ужасно раздражают. - person Dubs; 18.08.2009

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

person Jeff Siver    schedule 18.08.2009

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

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

person Scott Forsyth - MVP    schedule 18.08.2009

Поместите свое изображение или видео во флэш-формат. Работает отлично.

person Ferrari    schedule 18.01.2010
comment
Есть ли на сервере linux инструмент, конвертирующий mp3 в swf? - person Pons; 28.04.2010

Это старый пост, но для видео вы можете рассмотреть возможность использования MPEG-DASH для обфускации файлов. Кроме того, это обеспечит лучший опыт потоковой передачи для ваших пользователей без необходимости в отдельном сервере потоковой передачи. Дополнительная информация в этом сообщении: Как отключить видео / audio скачивание на веб-страницах?

person TimHayes    schedule 05.05.2016

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

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

Преимущество:

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

Недостаток:

  • Эти запросы выполняются медленно ... особенно если на одной странице много изображений. На самом деле я не нашел хорошего способа ускорить это ...
person Antony P.    schedule 09.09.2013

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

person user3387591    schedule 06.03.2014

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

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

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

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

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

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

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

person Ravinder Payal    schedule 23.03.2014

Вставьте прозрачный gif размером 1px x 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> и т. Д., Просто назовите соответствующее имя и предотвратите копирование вашей копии и / или изображений.

Но ничто не мешает делать снимок экрана ... ...

person redplanet    schedule 11.06.2012
comment
Предотвращение функциональности кликов не так хорошо, а иногда и противоречит другим целям сайта. - person Lea Cohen; 21.10.2012
comment
В большинстве браузеров есть элемент проверки, и этого достаточно для загрузки любого типа объекта, отображаемого в браузере. - person Oluwatumbi; 25.02.2015
comment
Конечно, я согласен с обоими этими комментариями, но после объяснения обоих и многого другого клиенту они просто хотели, чтобы первая линия защиты попыталась предотвратить копирование копии. Клиент хочет, чтобы клиент получил, объясните подводные камни и выставьте счет соответственно;) - person redplanet; 26.02.2015

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

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

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

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

person nmit026    schedule 18.10.2017

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

person Vipul Singh    schedule 04.07.2018

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

person Ranchoddas shyamaldas chanchad    schedule 28.09.2019
comment
Потому что скриншотов не существует. - person Joseph Sible-Reinstate Monica; 28.09.2019

Я думаю, что лучший способ: ПРОТЯНИТЕ ВИДЕО РАЗДЕЛЬНЫМИ ЗАШИФРОВАННЫМИ ЧАСТЯМИ.

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

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

person juanpazos    schedule 19.09.2014