Как предотвратить загрузку изображений и видеофайлов с моего сайта? Является ли это возможным? Как лучше всего это сделать?
Как предотвратить загрузку изображений и видеофайлов с моего сайта?
Ответы (25)
Нет, это невозможно.
Если вы это видите, вы можете это понять.
Не размещайте их на своем сайте.
В противном случае это невозможно.
Изображения должны быть загружены для просмотра клиентом. Видео похожи во многих сценариях. Вы можете настроить прокси-скрипты для обслуживания файлов, но это не решает проблему предотвращения получения пользователем собственной копии. Для более подробного обсуждения этой темы см. Вопрос Как предотвратить / затруднить загрузку моего флеш-видео?
Поскольку браузеру необходимо передать контент для его отображения (текст, изображения, видео), данные уже находятся на компьютере клиента при отображении веб-сайта. Предыдущие ответы дают мало советов о том, как усложнить получение контента неопытными пользователями. Вот несколько направлений:
- 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 »)
- Попробуйте отключить или перезаписать буфер обмена (см. этот пост)
- Overlay the respecitive contents with a transparent
- Images
- Do not use the
<img>
tag for images but set the image as background for a<DIV>
- Оборачивайте изображения в файлы SVG или Flash-ролики, чтобы сделать их очень труднодоступными в удобном для использования формате.
- Отключите кеширование изображений (с помощью тега
<meta>
или путем установки соответствующего заголовка при доставке на сервер), чтобы они не сохранялись в кеше браузера (всегда доступном на компьютере клиента). - Разрезать изображение на части, поэтому потребуется дополнительная работа для восстановления всего изображения.
- Добавьте к изображениям
onmousedown
событий, например, отобразите предупреждение об авторских правах. - Доставьте изображение через серверный скрипт (например, PHP) и проверьте ссылку.
- Do not use the
- 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
).
Благодарим вас за любые другие идеи, дополняющие приведенный выше список!
Хочу добавить более философский комментарий. Вся цель Интернета, особенно Всемирной паутины, состоит в том, чтобы обмениваться данными. Если вы не хотите, чтобы люди загружали изображение / видео / документ, не размещайте их в Интернете. Это действительно так просто. Слишком много людей думают, что могут навязать свои правила существующему дизайну. Те, кто хочет размещать контент в сети и контролировать его распространение, тоже хотят получить свой пирог и съесть его.
Если вы используете 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/
, которым обычно должен быть сам ваш веб-сайт.
Вы также можете взглянуть на мой вопрос и принятый ответ здесь, чтобы узнать о дополнительных хитростях в браузере.
Короче нет. Если кто-то может просматривать изображение или видео в своем браузере, значит, он их по определению загрузил. Так работает Интернет - он основан на клиент-сервере. Все, что вы можете просматривать в своем браузере (клиенте), было перенесено на ваш компьютер с удаленного веб-сайта (сервера).
В стандартном HTML я вообще ничего не знаю.
На самом деле вы не сказали, но я предполагаю, что у вас проблемы с людьми, которые ссылаются на ваш контент. Если это так, и вы открыты для кода на стороне сервера, я считаю, что это может сработать:
- Создайте страницу, которая принимает числовой идентификатор, сопоставляет его с путем к файлу сервера, открывает этот файл, записывает двоичный файл непосредственно в поток ответа.
- В запросе страницы сгенерируйте кучу случайных идентификаторов, сопоставьте их с фактическими URL-адресами мультимедиа и сохраните где-нибудь (в сеансе?) На стороне сервера объекта сопоставления с ограниченным сроком службы.
- Визуализируйте свои страницы со ссылками на мультимедиа, указывающими на новую страницу мультимедиа с соответствующим идентификатором в качестве аргумента строки запроса.
- Очистите объект сопоставления и генерируйте все новые ссылки при каждой обратной передаче.
Этот :
- не помешает людям скачивать с вашей страницы
- определенно не такой легкий, как стандартный HTML
- и имеет свой собственный набор проблем.
Но это общий план работоспособного процесса, который может помочь вам предотвратить использование глубоких ссылок пользователями.
Как уже говорили многие, вы не можете помешать кому-либо скачивать контент. Ты просто не можешь.
Но вы можете усложнить задачу.
Вы можете накладывать на изображения прозрачный div
, чтобы люди не могли щелкнуть по ним правой кнопкой мыши (или установка фона div
для изображения будет иметь тот же эффект).
Если вы беспокоитесь о перекрестных ссылках (то есть о том, что другие люди ссылаются на ваши изображения, вы можете проверить HTTP-реферер и перенаправить запросы, поступающие из домена, который не принадлежит вам, на «что-то еще».
вы можете уменьшить вероятность, но не исключить ее ...
Также не помешает нанести водяной знак на изображения в Photoshop или даже в Lightroom 3. Убедитесь, что водяной знак четкий и находится на видном месте на вашем изображении. Таким образом, если он будет загружен, по крайней мере, вы получите рекламу!
Вот как я это делаю, если кому-то в будущем интересно.
Я поместил это в файл .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, а затем сохранить его оттуда.
Нет, это не так. Вы можете заблокировать щелчки правой кнопкой мыши и подобные вещи, но если кто-то захочет скачать это, он это сделает, поверьте мне;)
Как только они просматривают вашу страницу с изображением или видео, элемент загружается во временную папку их браузера. Так что, если вы не хотите, чтобы он загружался, не публикуйте его.
Вы можете пометить папки или файлы, чтобы у них не было доступа для чтения (это поддерживает любой из основных веб-серверов). Это позволяет хранить их на сервере без какого-либо уровня доступа к внешнему миру. Возможно, вы захотите сделать это, если у вас есть служба, которая генерирует изображения, которые кто-то может загрузить позже, или если вы используете свою веб-учетную запись для доступа по FTP, но не хотите, чтобы кто-либо просматривал файлы. (т.е. загрузите файл .bak на сервер, чтобы кто-то еще отключил FTP).
Однако, как говорили другие, попасть в области авторского права, где люди могут просматривать изображение или видео, но не сохранять их локально, не совсем возможно, хотя есть инструменты, препятствующие незаконному использованию.
Поместите свое изображение или видео во флэш-формат. Работает отлично.
Это старый пост, но для видео вы можете рассмотреть возможность использования MPEG-DASH для обфускации файлов. Кроме того, это обеспечит лучший опыт потоковой передачи для ваших пользователей без необходимости в отдельном сервере потоковой передачи. Дополнительная информация в этом сообщении: Как отключить видео / audio скачивание на веб-страницах?
Допускается, что любое изображение, которое видит пользователь, можно будет сохранить на компьютере, и вы ничего не можете с этим поделать. Теперь, если вы хотите заблокировать доступ к другим изображениям, которые пользователь не должен видеть, я на самом деле делаю это таким образом:
- Каждая ссылка на «src» в вашем теге изображения на самом деле является запросом, отправленным контроллеру на сервере,
- сервер проверяет права доступа этого конкретного пользователя и возвращает изображение, если предполагается, что пользователь имеет к нему доступ,
- все изображения хранятся в каталоге, к которому нет прямого доступа из браузера.
Преимущество:
- Пользователь не будет иметь доступа к чему-либо, к чему вы не намереваетесь иметь доступ.
Недостаток:
- Эти запросы выполняются медленно ... особенно если на одной странице много изображений. На самом деле я не нашел хорошего способа ускорить это ...
Вы можете установить изображение как фоновое и иметь прозрачное изображение переднего плана.
Вы не можете остановить кражу изображений / видео, но вы можете усложнить задачу для обычных пользователей, но вы не можете усложнить задачу для таких программистов, как мы (я имею в виду воров, которые мало разбираются в веб-программировании).
Вот несколько приемов, которые вы можете попробовать:
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/
Вставьте прозрачный 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>
и т. Д., Просто назовите соответствующее имя и предотвратите копирование вашей копии и / или изображений.
Но ничто не мешает делать снимок экрана ... ...
Если вы хотите, чтобы контент получали только авторизованные пользователи, и клиент, и сервер должны использовать шифрование.
Для видео и аудио хорошим решением являются службы мультимедиа Azure, в которых есть защита и шифрование контента. Вы встраиваете медиаплеер Azure в свой браузер, и он передает видео из Azure в потоковом режиме.
Документы и электронную почту можно найти в службе управления правами Azure, в которой используется специальный клиент. К сожалению, в настоящее время он не работает в обычных веб-браузерах, за исключением одноразовых кодов.
Однако я не уверен, насколько все это безопасно. Как отмечали другие, с точки зрения безопасности, как только эти загруженные байты попадают в оперативную память «злоумышленника», они практически исчезают. В этом случае ни одно решение не является на 100% безопасным (пожалуйста, поправьте меня, если я ошибаюсь). Как и в большинстве случаев безопасности, цель состоит в том, чтобы усложнить задачу, чтобы 99% не беспокоились.
Я думаю, что лучший способ - предотвратить щелчок правой кнопкой мыши на вашей веб-странице, потому что это наиболее удобный способ, которым обычный пользователь пытается загрузить контент, и вы можете рассматривать это как замечание, если вы можете сделать это только, поскольку вы никогда не будете может помешать компьютерным фанатам или хакерам загрузить его, потому что, когда контент находится в Интернете, это означает, что он уже находится в общественном достоянии ...
Поместите контент на Google диск и сделайте его защищенным от загрузки. Таким образом, люди могут видеть только ваши документы и изображения, но не могут их скачать.
Я думаю, что лучший способ: ПРОТЯНИТЕ ВИДЕО РАЗДЕЛЬНЫМИ ЗАШИФРОВАННЫМИ ЧАСТЯМИ.
Существуют такие услуги видеохостинга, как vzaar, которые обладают такой функциональностью. Насколько мне известно, прямую загрузку в этом случае будет очень сложно. По крайней мере, для 95% людей.
Но, конечно, если видео воспроизводится на экране, люди могут просто использовать устройство записи экрана и какое-то простое программное обеспечение для записи звука с аудиовыхода (но ему / ей придется воспроизводить ВСЕ, чтобы сохранить его, что совершенно неудобно).