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

Первое, что приходит на ум - составной URL из переменных, результат конкатенации которых выводится в canvas с запретом контекстного меню.
Какие еще могут быть варианты для усложнения скачивания картинок?
  • Вопрос задан
  • 4409 просмотров
Решения вопроса 3
Adamos
@Adamos
Максимально эффективный способ - это иметь на сайте изображения, которые никто не будет скачивать.
Например, водяные знаки или надпись с названием сайта на каждом фото позволяют приблизиться к этому идеалу.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Самое простое - Watermark.
2. Сложнее - частичная доставка с сервера выбранной области изображения с шифрованием и расшифровкой на клиенте, и никогда не отображать изображение целиком. (т.е. типа контейнера со скроллом внутри канваса по аналогии с гугл-мапс).
3. Хардкорный стиль - Adobe Flash Application!
4. "Puzzle" - "хаотичная" (только с виду!) динамическая нарезка в режиме спрайт-карты и сборка через js. Формула - тоже разная каждый раз.
5. "Калька" - многослойное изображение из нескольких с альфа-каналом (с прозрачностью)
6. Класть изображение в JS-контейнер на серверной стороне, помещая в него метод отображения с привязкой к IP и браузеру клиента, и ровно на 15 секунд (чтобы загрузил и всё) и бинарные шифрованные данные, после загрузки скрипта у клиента - запрашивать токен с сервера на расшифровку данных.
(методы можно комбинировать)
Ответ написан
@Gryadk_in
1 - то, что показывает браузер, он уже скачал в %temp%
2 - можно запихнуть картинку во flash, с пессимизацией от яндекса, за не мобильный контент
3 - можно класть картинки как background-image:url(http://.............);
Но ни что не помешает юзеру нажать PrtScr

Полагаю, фотостоки уже обмусолили этот вопрос. Если бы был другой способ - не было бы ватермарков на стоковых фото.
Ответ написан
Пригласить эксперта
Ответы на вопрос 12
@zuluss
Нет у вас методов против Кости Сапрыкина ( Место встречи изменить нельзя) :-)
Ответ написан
Symphony
@Symphony Куратор тега JavaScript
Самый эффективный способ – это не выкладывать изображение на сайт.
Извиняйте за такой ответ, но лишь он реально может защитить от скачивания, а все остальные может преодолеть специалист с уровнем знаний чуть выше джуна.
Ответ написан
Я как-то раздумывал над одним способом.

Берешь картинку, разбиваешь ее на много блоков (по какому-либо алгоритму) и меняешь все эти блоки местами.
Получается пазл.

А при инициализации картинки просто собираешь этот пазл по типу спрайтов по тому же алгоритму.
Ответ написан
urtow
@urtow
*nix, python, QA, bagpipe, folk music
Нет способа, только ватермарка.

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

Найдете того, кто скачал - предъявляйте претензию или судебный иск, как принято в стране сайта.

Если найти скачавших и нелегальное использование скачанных изображений не представляется возможным, то и защищаться от этого смысла нет.
Ответ написан
Holzfaller
@Holzfaller
Ruby / Ruby on Rails developer (full-stack)
мне кажется, что того, кто хочет скачать картинку понравившуюся, не остановит и watermark. а все эти способы блюрить при потере фокуса и картинка на background/iframe - никак не спасёт от inspect element.

самый грамотный ответ дал Stas - разместить текст лицензи на использование картинок и если нашли тех, кто картинку использует не правомерно - иск в суд.
Ответ написан
viphorizon
@viphorizon
Можно использовать Canvas или Background. Или над изображением поставить невидимый div, код которого будет находиться далеко от самого изображения(z-index).
Ответ написан
@Fnarote
WaterMark, при том такая, чтобы была практически по всему изображению, довольно заметная. Если разместить её "тихо-мирно" где-то снизу, то просто обрежут и станут у себя картинку показывать, как будто так и было. Запрет контекстного меню, загрузка по кусочкам и незаметная сборка на экране пользователя и тому подобное с успехом разбивается об примитивную комбинацию "Ctrl+PrtScr" (снимок экрана), насколько бы хитрой она не была. Способа отображать изображение в изначальном качестве и чтобы не украли просто нет.
Гораздо реальнее защитить картинку запретом от копирования на другие сайты при помощи правил в файле ".htaccess" для Apache и пользовательского Referer: если человек перешёл на сайт через Google, иной поисковик, или же с другой страницы твоего сайта, то показываем ему нормальную картинку, а если пытается посмотреть её с какого-то непонятного ресурса, то сразу же демонстрируем картинку-заглушку. От копирования не спасёт, зато лишнюю нагрузку не по теме на сайт снизит.
Ответ написан
LightAir
@LightAir
LA
Только ватермарк. Я крайне не рекомендую другие способы (как советуют тут, во флеш, пазл и т.д) это скажется на сео. К примеру кто-то сделал скриншот картинки и выложил на свой сайт, по мнению поисковиков у него будет уникальный контент и "авторство картинки", у вас либо вообще ничего либо "чужая" картинка.
Ответ написан
@ZoomLS
Нет такого способа. Если нужно будет скачать изображение - его все равно скачают.
Зачем тогда тратить время на всё это?
Ответ написан
Еще есть способ - выводить картинку на канвас не полностью, а например через строку. За второй проход выводить картинку на канвас через строку, но вторую часть. Если сделать очень быстрой смену вывода двух частей картинки, то на вид она будет цельная, а при попытке принтскрина получится только искаженная картинка.
Вот пример https://www.patrick-wied.at/talks/image-protection...
Ответ написан
@FRiMN
Я не знаю, как это реализовано, но есть интересный способ у AirBnB.

Есть два варианта картинки:
1. без ватермарка -- https://a2.muscache.com/im/pictures/52149945/33130...
2. с ватермарком -- https://a2.muscache.com/im/pictures/52149945/33130...

Скачать можно обе, но первую можно посмотреть (открыть) только в браузере. Есть предположение, что файл просто "портят", либо он вообще не JPEG: Error interpreting JPEG image file (Not a JPEG file: starts with 0x52 0x49).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы