Как защитить фотографии от скачивания?
В моем проекте важно что бы фото были защищены и в идеале нельзя было их скачать. Какие способы защиты можно использовать?
Ответы (3 шт):
Защитить изображения полностью не получится. Можете почитать про DRM, но даже это не защитит вас от копирования изображений.
Например, вы настроили DRM, сделали доступ к контенту возможным только с мобильных устройств. Скриншоты и скринкасты делать нельзя, и, казалось бы, все довольны. Однако найдётся пользователь, который запустит приложение на виртуальном устройстве и снимет данные с него, или рутует свой гаджет.
Про десктопные платформы или веб-платформы и говорить не стоит - тут у приложения куда меньше привилегий и способов ограничить возможности пользователя.
P.S. Кстати, недавно на Хабре была опубликована достаточно интересная статья. Можете почитать на досуге :)
Все довольно просто. Если ваше фото своровал неизвестно кто и смотрит на него у себя в бункере, заперев дверь, то и фиг с ним, аудитории у него нет, а значит, особо больших убытков от этого тоже нет.
Если же фото утянули журналисты и использовали в публикации, вы об этом узнаете, выполняя, например, поиск по вашим фото в Гугле, Тинае и Яндексе.
Теперь в дело вступают вотермарки, только не те вотермарки, которые огромная серая надпись поперек фотки, а настоящие, неразрушаемые обработкой цифровые вотермарки с ЭЦП и суды - юристы. Либо какой-то другой способ доказать приоритет, например, оригинальные RAW файлы.
Любую защиту можно обойти. Главное - сделать защиту довольно сложной, чтоб стоимость обхода была выше стоимости картинок.
Весь код клиента должен быть обфусцированный, понятное дело.
Клиент с сервером поднимает WebSocket соединение, обменивается с ним ключами по протоколу Диффи-Хеллмана
Сервер отдает клиенту зашифрованые куски нарезаной картинки. Картинка нарезена на кучу кусочков, как описано в статье на хабре.
Картинки рендерятся не в тег img, а на несколько
Canvasов. У всех абсолютное позиционирование, так же запутаннаяDOM-структура, которая раз в пару секунд меняется (может это лишнее).Можно прикрутить сюда
captcha- чтоб было труднее парсить.Можно сделать сложный алгоритм дешифровки, чтоб на расшифровку нужно было несколько секунд.
Добавить защиту от дебага - если открыт
DevTools- скрипт прекращает работу и очищает картинки.
Но все равно любую защиту можно обойти, например, сделав скриншот. От скриншота защитит максимум ватермарка, и то не полностью.
Так же рекомендую немного уменьшить картинку, понизить JPEG-качество, чтоб не было выгодно брать вашку картинку.