защита изображения в рельсах - PullRequest
0 голосов
/ 28 апреля 2010

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

Также есть ли плагин rails, чтобы помочь с этим?

Спасибо

Ответы [ 5 ]

6 голосов
/ 28 апреля 2010

Я очень, очень не хочу блокировать щелчок правой кнопкой мыши.Это напоминает мне девяностые, когда по щелчку правой кнопкой мыши появляется сообщение, что копирование этого сайта запрещено;).

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

2 голосов
/ 28 апреля 2010

Вы никак не можете это сделать, это просто дым.

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

Они даже могут взглянуть на ваш html / css / javascript, найти место для вашей фотографии и поместить его в адресную строку.

1 голос
/ 05 апреля 2014

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

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

Мы должны различать (как минимум) две вещи:

A. Запретить кому-либо сохранять изображения из браузера.

B. Запретить кому-либо писать сценарий для автоматического копирования всех ваших изображений.

Решения:

A.

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

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

Я думаю, что это общее правило применяется в Интернете: если вы не хотите, чтобы оно распространялось вне вашего контроля и вы получали кредит, не размещайте его в Интернете.

В.

Это менее приятный сценарий. Самое основное, что я когда-то сделал, чтобы сделать сложное копирование изображений, это a. использовать непредсказуемые ссылки на изображения и б. создайте на вашем сервере скрипт, который при вызове будет извлекать изображение из вашей файловой системы, а затем выводить это изображение. Например: http://example.com/some_image.php Код действительно прост:

<?php
$name = './img/ok.png';
$fp = fopen($name, 'rb');

header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

fpassthru($fp);

Источник: ТАК ответ по теме

Итак, однажды я создал сценарий, подобный описанному выше, но добавил туда параметр синхронизации, чтобы при его двухкратном вызове (из одного сеанса), скажем, 10 секунд вернуло одно и то же изображение. Таким образом, автоматизированный скрипт может работать только с 1 изображением каждые 10 секунд. Кроме того, вы можете сделать так, чтобы URL содержал некоторый хэш метки времени:

http://example.com/some_image_$(md5(Time.now + "secret")_Time.now).png так, например:

`http://example.com/some_image_aihfio1n...oi12nof_1396723820.png

Чтобы проверить, разрешено ли извлечение изображения, выполните следующие действия:

Вы берете запрошенное имя файла, удаляете 'some_image', а затем хеш md5. Затем вы проверяете, находится ли данное время («1396723820») в пределах «сейчас» и 10 минут (с учетом колебаний). Затем проверьте правильность хэша для этой временной метки + «секрет».

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

Использование этого метода для ваших производственных изображений может выглядеть примерно так:

http://example.com/some_image$(md5($image_id, "secret",$timestamp))_$image_id_$timestamp.png

$image_id вот какой-то статический идентификатор для вашего изображения (имя_файла, идентификатор продукта в вашей базе данных и т. Д.).

Пожалуйста, кто-нибудь, поправьте меня, если мое предположение, что это усложняет прогнозирование путей к файлам, неверно. В конце концов, первое правило создания шаблонов шифрования - «не делай этого». Так же и второй. Но это довольно невинный, с которым можно поиграть.

1 голос
/ 28 апреля 2010

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

Для сайта с фотографиями, который я создал в Rails, у меня есть Paperclip, удаляющая оригинальную фотографию с высоким разрешением после того, как она создала набор уменьшенных миниатюр. Объедините его с водяным знаком в углу изображения, и у вас должно быть достаточно, чтобы украсть высококачественное изображение, не причиняя неудобств пользователям.

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

0 голосов
/ 28 апреля 2010

узнайте, как коммерческие поставщики изображений (например, iStockphoto.com) защищают свои изображения, и посмотрите, соответствует ли это вашим потребностям.

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