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

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

24 ответов


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

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


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

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


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


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


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


в стандартном HTML, я все равно не знаю.

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

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

Это :

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

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


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

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

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

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


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

  • общие
    • наложите респективное содержимое прозрачным <DIV> или a прозрачное изображение (как описано в некоторых ответах на это вопрос)
    • откройте веб-сайт в наборе фреймов, поэтому сохранение может пропустить содержимое фрейма.
    • открыть веб-сайт через window.open() чтобы скрыть строку меню.
    • отключить Правой Кнопкой Мыши через JavaScript (не рекомендуется из-за всех побочных эффектов на юзабилити)
    • загрузите HTML-код страницы из другого файла (который может проверять конкретный референт или который может быть ROT13) через JavaScript, поэтому труднее получить доступ к исходному коду.
    • сообщить браузеру что все содержание display:none для принтеров (что-то вроде @media print { body, div, p { display: none } })
    • используйте JavaScript, чтобы скрыть содержимое, прежде чем клиент сделает снимок экрана (см. остановить пользователя от использования "Print Scrn")
    • попробуйте отключить или перезаписать буфер обмена (см. этот пост)
  • картинки
    • не используйте <img> тег для картинок, но установить изображение в качестве фона для <DIV>
    • обернуть изображения в SVGs или флэш-фильмы, чтобы сделать их очень трудно получить доступ в удобном формате.
    • отключить кэширование изображений (через <meta> tag или путем установки соответствующего заголовка при доставке сервера), поэтому они не хранятся в кэше браузера (immeaditely доступны на компьютере клиента).
    • вырезать изображение на части, поэтому требуется дополнительная работа для восстановления всего изображения
    • добавить onmousedown события для изображений, например, отображение авторских прав тревога.
    • доставьте Изображение через серверный скрипт (например, PHP) и проверьте референт.
  • видео
    • поток видео, чтобы предотвратить простую загрузку через URL.
    • оберните видео в флеш-фильм.
    • используйте какой-то неприятный формат, который поддерживает DRM.
  • тексты
    • сделать текст недоступным (см. как сделать HTML-текст невыбираемый)
    • кроме наложения, оберните текст в JavaScript (например, после ROT13 или динамически загруженный из второго файла), поэтому текст не доступен непосредственно в исходном коде.
    • преобразование текстов в изображения (это может снизить качество отображения), SVGs или Flash

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

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

Спасибо за любые другие идеи, чтобы дополнить вышеприведенный список!


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


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

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


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


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

Я положил это на .файл 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 а потом спасти его оттуда.


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


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


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

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


поместите изображение или видео в формате flash. Отлично работает.


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


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

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

выгода:

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

недостаток:

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

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


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

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

1.) С помощью flash как YouTube и многие другие сайты, как http://www.funnenjoy.com делает.

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

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

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

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


вставьте прозрачный gif 1px x 1px только внутри <body> tag:

<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> etc, просто назовите соответственно и предотвратите разрыв вашей копии и/или изображений.

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


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

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

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

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


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


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

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

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