Wednesday, July 06, 2011

Как защитить картинку от копирования с веб страницы

Ответ: Никак

Оно и понятно – способо дофигища. От ПринтСкрин, до лазания по кэшу браузера. Но это длинные пути, а короткие (Save Image As…) можно обрезать. Усложнить жизнь пользователю.

Итак. Перечислим методы усложнения.

1. Показывать картинку не в браузере, а в плагине. Например во флеше. Работающий метод. За минусом, что потенциально не все платформы (АйФигни идут мимо). Плюс флеша – можно всякие визуальные эффекты добавит. Прокси и кэш можно отрубить -  флеш может загружать изменненный (криптованый) контент (минус – нужен препроцессинг), а показывать уже правильный. Остается ПринтСкрин и пара минут работы в Фотошопе. И тут могут помочь…

2. Водянные знаки. Можно заведомо испортить изображение этими знаками, так что пользователь совсем не захочет копировать это изображение. Из минусов – необходимо хранить 2 копии – порченную и оригинал, и соответственно иметь процессинг одного в другое. Оригинал все таки нужно показать, например за денежку. Еще минус – на маленьких изображения будут вноситься искажения, ухудшающие восприятие этой маленкой картинки.

3. Прикрыть картинку другой, но прозрачной (или не совсем прозрачной против ПринтСкрина) картинкой. Так что сохраняться будет та, что сверху. Довольно просто реализуется. Оригинал сохраняется в кэше браузера (прокси) и довольно просто (при некотором навыке и\или установленных программах) извлекается. Или просто получить УРЛ картинки и вставить его в браузер. (По умолчанию referer конечно проверяется, чтобы не было наглого лича). Картинку можно ставить в бакграунд блока.

4. Нарезка. На кусочки. Фарш из кусочков. Который собирается на странице (джаваскрипт или статично) и показывается пользователю. Плюсы… Не.. Лучше про минусы. Нужен препроцессинг (нарезка), хранилище увеличивается (много мелких файлов). Нагрузка на сервер увеличивается (много мелких файлов). ПринтСкрин доступен. Но можно один кусочек не показывать например.

5. Ничего не делать – это всё дурные мысли.

6. UPD Нарисовать на html5 canvas. Наверное должно быть API какое нибудь, не попиксельно же отрисовывать.

PS А задумка была такая – провести пользователя по сайту, чтобы он получил желаемую картинку в нужном нам месте. Ну может на рекламку по дороге кликнул ;)

1 comment:

sm100 said...

разрезать картинку на кусочки