Как стать автором
Обновить

Комментарии 80

Вы написали PHP-скрипт, который режет картинку на кусочки. Почему бы кому-то не написать PHP-скрипт, который собирает ее из кусочков? Photoshop для этого не нужен.
100% гарантию от копирования, как я понимаю, на данный момент не дает ничего. А вот добавить препятствий, когда легче пользоваться сервисом согласно правилам — вполне можно.
Обратный сбор картинки легко можно усложнить, изменив название с прямолинейного«строка_столбец».жпг на любой другой алгоритм
Можно определять положение кусочка картинки в ней не по названию файла, а по позиции в таблице. ИМХО овчинка выделки не стоит.
можно даже без позиции определить. Края у соприкасающихся кусочков одинаковые. Аналогично можно после шрёдера собрать документ
Можно резать с перекрытием, сложность возрастает, но если сильно надо
Перекрытия не сильно спасут от обратной сборки, если они единообразны для всех кусков. Скрипт просто будет накладывать со смещением.
А вот если размер перехлеста плавающий — да, это определенно добавит сложности.
Вообще это все так, ум размять) На самом деле в том же FF есть пункт Screenshot node, просто скриншотится нода содержащая все картинки и все.
Да, в комментариях упоминали. Но это уж совсем нечестно)

Это мы с вами умеем писать скрипты. А условное "агенство", которому понравились ваши фотки, писать скрипты не умеет и поэтому не сможет их у вас украсть.


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

Условное агентство наймёт условное агентство, где умеют.
10 тысяч рублей за каждое стыренное фото можно отсудить у тех, кто его взял без спросу и использовал в коммерческих целях.
Варламов Илья так подал в суд на несколько изданий, которые стырили его котиков из блога. Что-то мне подсказывает, так могут и юридические тролли делать.
Илья Варламов отказался от подачи исков и перевёл все свои фотографии на свободную лицензию. Что-то мне подсказывает, что суды просто не приносили ему столько денег, чтобы окупить временные затраты и покрыть расход на юристов.
Возможно, но имхо, скорее репутационных потерь не захотел.
А расходы на юристов компенсируются за счет ответчика, тем более что все иски типовые под копирку, и не особо запутанные сами по себе.
Его иски были очень непростые.

Один раз пришлось спорить с телеканалом, и телеканал выиграл. Другой раз пришлось доказывать, что СМИ не имеет права цитировать фотографию, и СМИ выиграло.

О репутационных потерях в его случаях я не слышал. Если вы слышали о репутационных потерях от копирайта, будьте добры, расскажите. Спасибо!
Я плохо помню историю, т.к. сам глубоко не копал, но помню что многие комментаторы к новостям про кражу фоток с котятами начали хейт на Варламова в духе «сутяжник решил разорить газеты и бабла поднять».
Понятно, спасибо. Однако это не репутационные издержки, а просто суесловие тех скандалистов, которые не имеют никакого влияния.
Кстати: habr.com/ru/post/511186 (на всякий случай, подумал может быть тоже будет интересно)
Кому нужно скопировать — скопирует.
Для данного подхода (разрезать изображение на кусочки) задача решается написанием обратного скрипта, собирающего изображение из кусочков.
Ну или в лоб.
Согласен, что кому нужно — так или иначе заберет контент.
А про сбор обратно при помощи скрипта — как я ответил выше, если заменить алгоритм загрузки на более сложный, а не по названию, как сейчас — написать скрипт будет еще сложнее, тем более свой для каждого подобного сайта
Если действительно начнут так делать — то очень быстро появятся расширения для браузера с открытым исходным кодом, собирающие изображения обратно, и даже обычные пользователи смогут спокойно скачивать дальше. Ну а более продвинутые будут добавлять скрипты для конкретных сайтов и в конечном итоге ничего не изменится.
Ну, мне не видится что это поможет решить проблему «копирования картинок в высоком разрешении и качестве»:
Для сайтов знакомств, соцсетей, фотохостингов не нужны картинки супер-качества и супер-детальные, поэтому с помощью принтскрина скопировать таки можно будет. Может от поиска по фотографии это и защитит(хотя он итак в последнее время урезается силами соцсетей), но от копирования уже выложенного никак, небольшие потери качества никак не повлияют на поиск, да и всегда можно собрать картинку обратно

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

"Может от поиска по фотографии это и защитит"
Есть куча утилит для скриншотов. Одна из функций у них — загрузка сделанного скриншота на хостинг. А с него уже нетрудно запустить поиск по изображению.

Я имею в виду, если пикча будет разрезана на квадраты маленькие на сайте, то в поисковик вряд ли будет загружена вся пикча целиком
Вот как-то так бегемотик выглядит:
image
Подскажите, в каком браузере? У меня Фиона цела и невредима в Мозилле, Хроме и Сафари. Коллеги на Андроиде говорили о подобной проблеме, да…
Opera, Edge (новый). В старом Edge нормально.
У меня нормально в Опере.
Тут рядом говорят, что в масштабировании/округлении.

именно так оно выглядит, если у человека масштаб не 100%. есть такая проблема у движков браузеров, масштабирования и округления. если элементы собраны из нескольких тайлов, при масштабировании рандомно становятся видны артефакты математики с округлением. проблема не такая редкая, как может показаться, например огромное количество людей в современном мире работает за 2к мониторами с масштабом 120% в браузере и сайты сделаные с такой наивной идеей о том что элементы можно собрать из тайлов выглядят именно так. не знаю почему об этом ещё никто не сказал. браузеры во многом сейчас рассчитаны на то что элементы будут спрайтами с композицией (один элемент — один спрайт и они все могут быть наложены друг на друга и залезать друг на друга).

Ага, ну всё правильно, у меня как раз включено масштабирование.
огромное количество людей в современном мире работает за 2к мониторами с масштабом 120% в браузере и сайты сделаные с такой наивной идеей о том что элементы можно собрать из тайлов выглядят именно так
Ну это так, небольшие артефакты. А если выбрать нестандартный размер текста, то вёрстка едет настолько, что часть текста невозможно прочитать, причём ладно бы у подобных самоделок — так у всяких гигантов типа Амазона такие проблемы. Я как-то отправил им скриншот с примером нечитаемого текста, так они мне ответили, что это якобы фишинг, а не Амазон.
Подтверждаю. Chrome 83.0.4103
Где-то я это уже видел… ну да фиг с ним.
В качестве защиты идея так себе. Кто захочет стянуть исходную фотку, сделает это на раз, быть может даже браузерным скриптом (у вас же простая сетка с предопределёнными названиями файлов).
Мне в голову сходу приходит другой вариант: Перед отдачей пользователю картинка режется на случайные кусочки, как и по количеству, так и по размерам. В браузер они приходят одноразовыми ссылками вместе с координатами, куда в окно влепить.
Если вход закрыт авторизацией, то единственный способ собрать картинку — включить какой-нибудь анализатор трафика и честно дождаться, пока придут все фрагменты, а потом повторить работу скрипта по отрисовке всего этого вместе.
Тоже не гарантия, но сделать будет уже посложнее.
Согласен, что сейчас реализация самая прямолинейная, что позволяет написать обратный скрипт склейки изображений.
Но стоит все картинки отдавать пользователю с одним названием, как пример, выгружая их из разных папок, одна затирая другую на сервере — и все, собрать можно только перебором или решая увлекательный паззл.
Это вы про одноразовые ссылки. Да, утянуть контент будет сложнее. Но если схема сбора известна, то это будет лишь чуть сложнее, чем исходный вариант.
Тут как в классике шифрования — нужен одноразовый секрет, который максимально сложно получить пользователю.
Тут, кстати, можно сделать ещё один уровень сложности для прокрастинаторов: пусть картинка собирается действительно из случайных фрагментов. Чем выше уровень, тем мельче фрагменты и более разбросаны они по картинке. Надо только подобрать хорошую функцию распределения, чтобы покрытие стремилось к 100% за определённое время.
Но стоит все картинки отдавать пользователю с одним названием, как пример, выгружая их из разных папок, одна затирая другую на сервере — и все, собрать можно только перебором или решая увлекательный паззл.

Чего вдруг? Зачем там перебор? Ровно как и пользователь, скрипт получит одну за другой все «одноразовые ссылки», скачает фрагменты и соберет изображение в одно целое.

Решается inject'ом JS кода на страницу (можно через "консоль разработчика", можно кучей других способов), там и координаты будут доступны и страничку можно разобрать как угодно.


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

Взять изображения, сделанные кем-то другим, бОльшая часть которых находится в общественном достоянии — и торжественно прикрутить ко всему этому «защиту от копирования»…
Ну, короче, вы молодец. Возьмите с полки голубец. От Ивана Семеновича.
Для начала стоит прочитать статью до конца, это позволит сделать более полный вывод о чем, собственно, речь.
Но боль в комментарии чувствуется даже на расстоянии, это да)
Проецируйте не на плоскость, а на сферу с большим радиусом для более интересной статьи и частичной защиты от склейки принтскринов.
Если я правильно понимаю — даже с поверхности сферы можно будет собрать изображение без проблем. Ключевое решение — неоднородность нарезки и более сложное название.
Но статья точно была бы интереснее, не поспорить
С поверхностью сферы можно начать проворачивать вот такое. Защита не оптимальна, но натянуть Мону Лизу на глобус — бесценно!

да-да, скачивал книжки с "библиотеки Ельцина", где они порезаны этой фигнёй.
Понятно, что им этого может не очень то и хотелось.
Но — есть либа, есть для ней стандартный интерфейс.
Есть ограничение по лимитам (типа, чтоб никто зараз всю картинку не скачал, потому что большая!).
Ну ок, вытягиваем список страниц, выясняем лимиты. И запускаем достаточно простой скрипт. Вытягиваем 8 тайлов каждой страницы (с максимальным качеством, но чтобы попасть в лимит). Склеиваем (не в фотошопе; там же, в консоли, с помощью imagemagick). Всё скриптуем — и вуаля, вот 635 jpeg на 635-страничную книгу, все в максимально отданном качестве. Можно перегонять в tiff и скармливать в pdfbeads.

Насколько помню с этой фигни страницу можно в тифе скачать целиком простым запросом через адресную строку, без ручной склейки ;)
Но такой защиты часто достаточно
Мне кажется, я где-то видел подобную технику лет пять назад, только вот не могу припомнить, где.
А по поводу защиты — ну, какая-то есть, но разве что от случайных людей и тех, кому копирование особо-то и не нужно было. Переименование картинок и другие «усложнения» не помогут — для человека, знакомого с веб-разработкой, это всё равно будет задачка на 20 минут.

Мало смысла.


От тех, кто целенаправленно хочет спарсить — не спасёте. Либо человек сам скрипты напишет, либо найдет фрилансеров, которые "за недорого" сделают парсер именно под ваш сайт.


Наитупейшая блокировка копирования в буфер обмена и то будет полезней (ох как бесят придурки, которые "для защиты своего сайта" блокируют буфер обмена… и не дают скопировать свой адрес и телефон (!!!), чтобы банально посмотреть как к ним добираться).


p.s. Кстати, можно поиграться с отдачей одной картинки, внутри которой блоки поменяны местами, а на правильные места на экране выводить их средствами JS. Ну или просто отдавать юзеру отзеркаленную картинку, а при отображении зеркалмть её обратно.

Наитупейшая блокировка копирования в буфер обмена и то будет полезней

Для таких умных сайтов, а так же для сайтов, которые блокируют правую кнопку мыши, я применяю магическое сочетание клавиш Ctrl+W.
Интересно, какое количество посетителей дочитало только до этого коммента?
Не дошедшим нужно было бы рассказать про магическую комбинацию Ctrl + Shift + T, которая воскрешает последнюю закрытую вкладку, но, увы, уже поздно ((
На сайтах знакомств раньше каждое фото оборачивали во флеш. Не ахти какая защита, но и не самая приятная. Если таких не очень приятных заслонов поставить несколько, работать будет в большинстве случаев. Кроме хорошо оплаченных :)
Для фотографий в том качестве, что были на сайте знакомств, хватало и снимка экрана.
Принтскрин? – картина высокого качества и выходит за пределы видимой области.

Клик правой кнопкой мыши, «take a screenshot», «save full page». Либо выделить нужный элемент и только его.
Да, в современном Firefox (а может и не только) скриншоты полной страницы делаются «из коробки».
А раньше всякие дополнения для этого ставили.
Дополню: это в Firefox. Нативный функционал.
меньшить масштаб и принсринить? – потеря в качества.
Для реверсивного поиска это не важно.
я могу понять защиту от скачивания, чтобы у гадкого юзера не сохранилась локальная копия если вы решите свою картинку удалить. Но защита от реверс-поиска изображений… Мне это видится как «мы своровали картинку у кого-то ещё и не хотим чтобы посетитель сайта мог найти оригинал». За такой под килем протаскивать надо, я считаю, потому что других вменяемых причин блокировать поиск по картинке я придумать не могу.

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

Уже тоже прошлый век и тема зашкваренная. Из lun.ua ребята не раз показывали на конфах, как чистят от ватермарков фото нейросетями, да и не только они. Похоже, что найти код/собрать и обучить нейронку самому можно.
Если компьютер клиента может показать картинку на экране — то он может и сохранить картинку (битмап) себе на диск, и преобразовать её в любой формат.

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

Баловаться с DRM и не разориться — могут разве что монополисты уровня MicroSoft (и то в последние году из-за появления и развития Linux — MicroSoft предпочитает терпеть пиратов, а не преследовать их, цепляя также законных пользователей).
Порезать картики в директориях(рекурсивно и в параллель) на кусочки бесплатно без регистрации и смс github.com/mbto/CutImage
Поддерживает jpg, jpeg, png, bmp, gif любой размер.
Увидев такое в дикой природе, я бы чисто из вредности сел и написал парсер/сборщик таких картинок обратно.
ЗЫ для обратного вывода тайлов можно кстати использовать какой-нибудь движок карт, например leaflet, правда у него присутствует точно такая же бага с отрисовкой границ тайлов при масштабировании.
Непонятные проблемы требуют невнятных решений.
Если картинка ваша — в чем проблема обратного поиска? Тот, кто ищет картинку, прийдет к вам, что плохого?
Если картинка получена из других источников… Нет, это не воровство, но немного попахивает.
Ну, и как только контент доставлен на клиентское устройство — всё. Клиент может делать с ним что угодно. Единственный способ — выпускать свои собственные устройства потребления контента (Amazon Kindle), да и то не 100% гарантия.
А так, вы почти сделали старое доброе шифрование перестановкой.
Эти же люди придумали отключать правую кнопку мыши на страницах. Наивные

В японии такой тип "защиты" уже достаточно давно практитуется.

Покупаешь мангу, а тебе специальный вьювер… который из вот таких картинок и json делает читабильные картинки.

Ну, японцы те еще извращенцы =)
главное — не собрать как-нибудь иначе(
Главное, чтобы не додумались из этого безобразия сделать капчу
(если что, я этого не предлагал)
Если уж идти дальше — то сразу вот такую дичь
Накидал для тестов (jpeg only, 50kb max, 350px по любой из сторон)
nickyx3.ru
Не поможет эта идея то, можно тупо картинку сфоткать на смартфон или при помощи вебкамеры. Как делали экранки фильмов то когда то. Так что ваша супер-дупер защита от этого метода не спасет.

Кому надо — всё равно соберут обратно и выкачают, но только в вашем случае лишнюю боль испытают ещё и люди с проблемами зрения, которым скринридер 600 раз скажет "Изображение"

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

В стародавние времена был скрипт который разбивал картинку на пиксели и строил по ним html таблицу, каждая ячейка 1 px определённого цвета.
Может проще тогда отрисовывать картинки на канвас?
А так есть даже проще способ защиты, делаете поверх картинки прозрачный элемент с z-index выше чем у картинки и правой кнопкой мыши уже не получится сохранить картинку.
Или вешаете событие на правый клик, которое будет заменять/уничтожать путь до картинки
Но конечно от скриншота уже ничего не поможет )
Хотя я давано как-то делал для интернет-магазина защиту от нажатия кнопки принт-скрина, она заносила в бан этот ip и все следующие страницы просто не открывались у него, вот такое было ТЗ )
Я встречал несколько лет назад на парочке крупных магазов такой подход для защиты скорее не от ручного копирования, а от парсинга фотографий товаров. Понятно, что обойти можно, но, выкачку большого каталога существенно усложнит и замедлит.
Мой не слишком профессиональный момент:
Делать кучу файлов из одной картинки, тоже не айс, т.к. файлы могут физически находиться далеко друг от друга на диске. Лучше порезать всё в один общий файл, а к нему обращаться по смещению. Так меньше фрагментация и скорость доступа
Делал примерно такое же для одного конкурса. Там картинки по частям открывались, да еще и перемешанными. Собственно, сама нарезка в десяток строк получилась, см метод storeUpdate в gist.github.com/FragsterAt/0075a77962abdfb4855129b663207636
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.