Как защитить фотографии от скачивания?

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


Ответы (3 шт):

Автор решения: Даниил Чижевский

Защитить изображения полностью не получится. Можете почитать про DRM, но даже это не защитит вас от копирования изображений.

Например, вы настроили DRM, сделали доступ к контенту возможным только с мобильных устройств. Скриншоты и скринкасты делать нельзя, и, казалось бы, все довольны. Однако найдётся пользователь, который запустит приложение на виртуальном устройстве и снимет данные с него, или рутует свой гаджет.

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

P.S. Кстати, недавно на Хабре была опубликована достаточно интересная статья. Можете почитать на досуге :)

→ Ссылка
Автор решения: gbg

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

Если же фото утянули журналисты и использовали в публикации, вы об этом узнаете, выполняя, например, поиск по вашим фото в Гугле, Тинае и Яндексе.

Теперь в дело вступают вотермарки, только не те вотермарки, которые огромная серая надпись поперек фотки, а настоящие, неразрушаемые обработкой цифровые вотермарки с ЭЦП и суды - юристы. Либо какой-то другой способ доказать приоритет, например, оригинальные RAW файлы.

→ Ссылка
Автор решения: Давид Манжула

Любую защиту можно обойти. Главное - сделать защиту довольно сложной, чтоб стоимость обхода была выше стоимости картинок.

  1. Весь код клиента должен быть обфусцированный, понятное дело.

  2. Клиент с сервером поднимает WebSocket соединение, обменивается с ним ключами по протоколу Диффи-Хеллмана

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

  4. Картинки рендерятся не в тег img, а на несколько Canvasов. У всех абсолютное позиционирование, так же запутанная DOM-структура, которая раз в пару секунд меняется (может это лишнее).

  5. Можно прикрутить сюда captcha - чтоб было труднее парсить.

  6. Можно сделать сложный алгоритм дешифровки, чтоб на расшифровку нужно было несколько секунд.

  7. Добавить защиту от дебага - если открыт DevTools - скрипт прекращает работу и очищает картинки.

Но все равно любую защиту можно обойти, например, сделав скриншот. От скриншота защитит максимум ватермарка, и то не полностью.

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

→ Ссылка