Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Защита изображений


Recommended Posts

Подскажите кто как защищает оригиналы ? 
Кешированные изображения с водяным знаком обойти легко. 

Link to post
Share on other sites

Тільки що, Andrylomakin сказав:

Кешированные изображения с водяным знаком обойти легко. 

Накладывайте водяной знак перед загрузкой или при загрузке фото

Link to post
Share on other sites
1 минуту назад, Flint2000 сказал:

Накладывайте водяной знак перед загрузкой или при загрузке фото

Я думал есть варианты по интересней :-D

Link to post
Share on other sites

32 минуты назад, Andrylomakin сказал:

Я думал есть варианты по интересней :-D

 

Не занимайтесь этой чухней!

Какая Вам выгода делать лишний труд, так называемо, защищая свои картинки?

По мне - так правильное русло и направляющая - это концетрироваться на своих продажах.

Подумайте о своих покупателях, которым смотреть на товаре всякое г...

Edited by specialforce22
  • +1 2
Link to post
Share on other sites

1 час назад, specialforce22 сказал:

 

Не занимайтесь этой чухней!

Какая Вам выгода делать лишний труд, так называемо, защищая свои картинки?

По мне - так правильное русло и направляющая - это концетрироваться на своих продажах.

Подумайте о своих покупателях, которым смотреть на товаре всякое г...

Кто-то получает фото бесплатно от поставщика, а некоторым выходит фото в пару тысяч баксов.
Нет желания делать подарки конкурентам.

Link to post
Share on other sites

2 минуты назад, Andrylomakin сказал:

Кто-то получает фото бесплатно от поставщика, а некоторым выходит фото в пару тысяч баксов.
Нет желания делать подарки конкурентам.

 

Конечно, такое чувство и мне знакомо))

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

Link to post
Share on other sites

2 часа назад, Andrylomakin сказал:

Подскажите кто как защищает оригиналы ? 
Кешированные изображения с водяным знаком обойти легко. 

Это как?

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

Если вас интересует траф с картинок, то Г не рекомендует картинки с ватермарком

 

Link to post
Share on other sites
В 31.01.2020 в 12:46, Andrylomakin сказал:

Нет желания делать подарки конкурентам.

 Это интернет. настройте свои ожидания и мышление соответствующим образом.

Link to post
Share on other sites

  • 3 months later...

День добрый всем! Собственно тоже беспокоит этот вопрос, немного с другой стороны. Защита нужна от парсеров, а также нужно закрыть возможность, публиковать фото размещенные на моем хосте по прямой ссылке на сторонних ресурсах. Собственно только ради желания убрать ненужную нагрузку на хост и слегка усложнить жизнь редизайнерам.

Link to post
Share on other sites

5 часов назад, matvens сказал:

а также нужно закрыть возможность, публиковать фото размещенные на моем хосте по прямой ссылке на сторонних ресурсах.

https://www.hostinger.ru/rukovodstva/kak-vkluchit-zashitu-ot-khotlinking

https://ktonanovenkogo.ru/vokrug-da-okolo/webmaster/zapreshhaem-xotlink-hotlink-v-apache-nginx-zashhitit-kartinki.html

Link to post
Share on other sites

А дополняя вопрос о защите оригинального каталога, может его переименовать (сгенерировать, что хрен угадаешь)? А потом изменить везде catalog на ваше имя.

Я правда не знаю как это в opencart устроено, если обработка происходит в одной месте и передается дальше, то изменить там + поправить в БД для уже существующих фото и готово.

Или все не так радужно, и многое к этому "image/catalog" привязано и вызовет конфликты?

Link to post
Share on other sites

Оригинальные картинки могут находится там где и находятся

А путь к неоригинальным т.е. к кешу можно изменить

Оригинальная

image/catalog/image/dir1/image.jpeg

 

Отресайзенная
image/cache/catalog/50-50/a0/ao345/image.jpeg

image/cache/catalog/100-100/a0/ao345/image.jpeg

image/cache/catalog/220-220/a0/ao345/image.jpeg

Link to post
Share on other sites
23 минуты назад, chukcha сказал:

Оригинальные картинки могут находится там где и находятся

А путь к неоригинальным т.е. к кешу можно изменить

Оригинальная

image/catalog/image/dir1/image.jpeg

 

Отресайзенная
image/cache/catalog/50-50/a0/ao345/image.jpeg

image/cache/catalog/100-100/a0/ao345/image.jpeg

image/cache/catalog/220-220/a0/ao345/image.jpeg

 

Эм может мы не до конца все вводные прояснили.

Рассматривается случай, когда ватермарки накладываются модулем в opencart (вроде один из самых распространенных случаев). Понятно что это не 100% защита, но предположим так мы защитили изображения и всех устраивает. 

Оригиналы же (в image/catalog) хранятся чистые, т.к. они нужны для отдачи фидов в тот же Merchant Center, Hotline, Rozetka и тд (где с ватермарками их отклонят). Вот было бы хорошо скрыть эти оригиналы, которые доступны при базовом знании работы opencart и вытягиваются просто сменой URL.

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

Хотя и это решение не идеальное, например если где-то в интерфейсе будет использоваться графика из папки оригиналов (типа фотки в статьи вручную добавленные) так наша папка и спалиться, как бы её хитро не переименовали, но это уже хоть каких то телодвижений будет требовать от воров.

А в текущем виде - бери не хочу.

Link to post
Share on other sites

в том-то и дело, что показанное мною решение  - прячет оригинальный путь, в отличие от стандартного решения

Link to post
Share on other sites
В 02.06.2020 в 17:10, matvens сказал:

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

:blink:

Столько сайтов ссылаются на ваши картинки, что это создаёт значимую нагрузку на Ваш сервер?

Есть народная примета, что ссылки, - это хорошо для трафика.

Link to post
Share on other sites

52 минуты назад, chukcha сказал:

в том-то и дело, что показанное мною решение  - прячет оригинальный путь, в отличие от стандартного решения

 

Я сначала не понял, а потом как понял :) Вы от обратного пошли. Теперь бы только кто взялся обернуть это все в код.

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

 

Link to post
Share on other sites

1 минуту назад, igorekioo сказал:

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

К сожалению, да

 

 

2 минуты назад, igorekioo сказал:

Теперь бы только кто взялся обернуть это все в код.

хм, а чего бы я это такое придумывал, если код уже есть (где-то лежит)

В чем еще преимущество такого кода - простота реализации именования имени файла, его можно на лету сделать транслитом от имени товара
А вот тут .. самое интересное. Если на транслит в урл Г смотрит в самый последний момент, то в транслит картинки в один из первых
+ название каротинки получается чистым, без размерной линейки

А также, при болщом количестве картинок, не собирает все в кучу  а плавно распределяет по папкам

 

Link to post
Share on other sites
8 минут назад, chukcha сказал:

К сожалению, да

 

 

хм, а чего бы я это такое придумывал, если код уже есть (где-то лежит)

В чем еще преимущество такого кода - простота реализации именования имени файла, его можно на лету сделать транслитом от имени товара
А вот тут .. самое интересное. Если на транслит в урл Г смотрит в самый последний момент, то в транслит картинки в один из первых
+ название каротинки получается чистым, без размерной линейки

А также, при болщом количестве картинок, не собирает все в кучу  а плавно распределяет по папкам

 

 

Звучит отлично. Тем более если заготовки уже есть, может вы поскребете по сусекам, да выложите это все в виде модуля. Я думаю спрос на такое точно есть.

 

А как себя поведут сторонние модули использующие миниатюры и другие кеш изображения (тот же sitemap)? Я так понимаю, если они сделаны с соблюдением архитектуры opencart то проблем не будет?

Link to post
Share on other sites

3 минуты назад, igorekioo сказал:

А как себя поведут сторонние модули использующие миниатюры и другие кеш изображения

без проблем, потому как модификатор вмешивается в модель

Правда с именованием немного похуже, потмоу что имя сущноости, а в основном товар не передается
Но дело в том , что верстка опенкарта  не позволяет корректно индексировать картинки
Г. в основном индексирует то, что лежит в src, а там почти всегда лежат превью
Потмоу как то что лежит по ссылке (popup) нее имеет альтов, и окружающий текст очень далек (глубина dom)

Link to post
Share on other sites
  • 1 month later...
В 03.06.2020 в 23:38, chukcha сказал:

без проблем, потому как модификатор вмешивается в модель

Правда с именованием немного похуже, потмоу что имя сущноости, а в основном товар не передается
Но дело в том , что верстка опенкарта  не позволяет корректно индексировать картинки
Г. в основном индексирует то, что лежит в src, а там почти всегда лежат превью
Потмоу как то что лежит по ссылке (popup) нее имеет альтов, и окружающий текст очень далек (глубина dom)

Поинтересуюсь, нет ли каких сдвижек по части модуля?

 

Я тут сам пока поковырялся, куда знаний хватило. Понял что сохранение кеша происходит в catalog/model/tool/image.php, и смог сделать зашифровку только для имени файла (через md5).

Было:

$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;

Стало:

$image_new = 'cache/' . md5(utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height) . '.' . $extension;

Минус такого подхода - пропало деление на папки и все файлы попадают в корень cache (что очень плохо). Если я правильно понял, причина вроде бы в том, что пути файлов хранится в $filename, а я их все шифрую.

Хотелось бы имена файлов сохранить, а путь как раз зашифровать (как вы писали выше), сохранив структуру или создав новую без разницы, главное чтобы сотни тысяч файлов не хранились в 1 каталоге.

Не подскажите, как правильно реализовать?

Link to post
Share on other sites

$image_new = 'cache/' . $width . 'x' . (int)$height) . '/' . md5(utf8_substr($filename, 0, utf8_strrpos($filename, '.'))) . '.' . $extension;

Например так

В зависимости от количества товара

$fn = md5(utf8_substr($filename, 0, utf8_strrpos($filename, '.')));

$sub = substr($fn,0,2);

$image_new = 'cache/' . $width . 'x' . (int)$height) . '/' . $sub . '/' . $fn . '.' . $extension;

 

  • +1 1
Link to post
Share on other sites
4 часа назад, chukcha сказал:

В зависимости от количества товара

$fn = md5(utf8_substr($filename, 0, utf8_strrpos($filename, '.')));

$sub = substr($fn,0,2);

$image_new = 'cache/' . $width . 'x' . (int)$height) . '/' . $sub . '/' . $fn . '.' . $extension;

 

Спасибо, это почти то что нужно.

А можно как-то сохранить название файла, не шифруя его? (вроде как поисковики рекомендуют понятные названия, хотя спорная тема конечно)

Как бы вытянуть из вот этого: utf8_substr($filename, 0, utf8_strrpos($filename, '.')), только название файла, без пути.

Link to post
Share on other sites

Та не вопрос

каким-либо образом  полeчкить имя файла

например
$info = new SplFileInfo(' $filename ');
$fn = $info->getFilename();
$path = $info->getRealPath();

$fn = md5(utf8_substr($fpath);

$sub = substr($fn,0,2);

$image_new = 'cache/' . $width . 'x' . (int)$height) . '/' . $sub . '/' . $fn;

 

 

Таким образом - название файла остается оригинальным, а путь - шифруется

Link to post
Share on other sites
1 час назад, chukcha сказал:

Таким образом - название файла остается оригинальным, а путь - шифруется

 

Я чуть изменил. Работает исправно. Можно ли вот так это делать, через "pathinfo"?

$fn = pathinfo($filename, PATHINFO_FILENAME);
$path = pathinfo($filename, PATHINFO_DIRNAME);
$path_md5 = md5(basename($path));
$sub = utf8_substr($path_md5, 0, 5);
$image_new = 'cache/' . (int)$width . 'x' . (int)$height . '/' . $sub . '/' . $fn . '.' . $extension;

И добавил больше символов для каталогов с md5, т.к. в теории может возникнуть ситуация когда названия файлов оригиналов совпадают (например в разных каталогах 2 разных фото, условно "tv/sony1.jpg" и "mobile/sony1.jpg" и первые 2 символа совпадут по md5, хотя шанс на это минимальный). Тогда наверное произойдет перезапись и будет неправильное изображение где-то, чего не хотелось бы.

Или я где-то налажал?

Link to post
Share on other sites

12 часов назад, igorekioo сказал:

Можно ли вот так это делать, через "pathinfo"?

Вполне - я показал одно из решений

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.