Как защитить изображения от PrintScreen?

Собственно сабж. Нужна защита изображений в основном от print screen. Я давно встречал такую страницу, где был представлен скрипт, который делит изображение на два слоя (что то вроде позитива и негатива), но только не по принципу разложения цвета, а разделение происходило по группам пикселей, и отдельно на двух изображениях было невозможно распознать объект на изображении. И скрипт уже JS просто выводил их по очереди с высокой скоростью смены кадра, и тогда получалось цельное изображение, но нажимая print screen в захват попадал лишь 1 слой.

Буду очень благодарен если кто видел что то подобное, либо если есть другие варианты борьбы с Print Screen даже с отключенным JS.

----

Не мог зайти два дня на тостер всё, зашёл а тут такое)))) я вообще почему способ этот выбирал, потому что нужна плюшевая защита от PrintScreen даже при не работающим JS. По поводу загрузки ресурсов на компьютер, я это лет в 14 наверно узнал, что всё хранится в кеше))) но дело в другом. На сайте могут быть изображения юридически не правомерны и для того чтобы написать например заявление куда то (суд или прокуратура), человек должен нотариально заверить веб страницу, и в основном нотариусы не чего не понимают в компьютерах даже. Суть процедуры заключается в описании всего процесса на А4 от включения компьютера до выключения. И на А4 должны прилагаться скриншоты каждого действия. Поэтому мне нужен вариант который на 100% не даст сделать процедуру возможной и в случае с двумя кадрами это как раз и получается, так как соединения в Фотошопе двух изображений скаченные с сервера путём нахождения ссылок через код JS - уже не будет рассматриваться как доказательство.
  • Вопрос задан
  • 15006 просмотров
Решения вопроса 1
@Sratimon
Все что ты видишь в браузере уже лежит у тебя на компе остается только это достать ! Достаешь из js 2 картинки и соединяешь их в фотошопе. или Делаешь расширение оно у тебя из js забирает переменные с 2 снимками и делает из них одну картинку =).
А так делай привью (маленькое изображение плохого качества и выкладывай его ) как это сднлано на платных фотостоках .
Как вариант попробуй сделать так при нажатии клавиши принскрин закрывай картинку черным дивом на 1 с или меньше мб поможет . А то лишний раз нагружать клиент это не круто .

P.s решений этого много но человек знающий веб все равно получит эту картинку если он ее видит . Есть сайт с шрифтами там шрифты стоят от 1$ до $150 мб больше . Их можно вытащить через F12 бесплатно =). Это так для примера !
------------------------------------------------------
Вот смотрю люди предлагают разные решения но как сказали это ворота по среди поля =) . Знающий человек все ровно достанет это да запрети ему все он достанет ее из оперативы =) . Если данные попали на комп то их уже не защитить !
Ставьте условия на прин скрин и при нажатие добавляйте к картинке дисплей ноне ! или Делайте привью .
О стольные решения приведут к нагрузке на машину пользователя и усложнению юзабилити сайта .
Появилась еще идея при нажатии f12 бить ссылку на картинку =) как варик если кто то захочет отключить js в браузере прямо у вас на сайте =)
Ответ написан
Пригласить эксперта
Ответы на вопрос 16
Serj-One
@Serj-One
i'm sexy and i know it
Всё содержимое страницы априори доступно пользователю. Кому нужно, вытащат из кода.
Защита от PrintScreen - турникет в поле, причём не просто не выполняющий свою функцию, но ещё и постоянно бьющий по бубенцам его поставившего.
Ответ написан
dadster
@dadster
учить инглиш тут - https://t.me/langhacks
Всем спасибо, посмеялся!) Еще одно предложение защиты - держать сайт на локальном сервере, и ни в коем случае не выпускать его гулять в интернеты.
Ответ написан
@766dt
Все что попадает к пользователю априори может быть извлечено.
Если данные, необходимые для для полного отображения картинки попали к клиенту(а они должны попасть целиком, чтоб отобразить целую картинку), значит можно восстановить полную картинку(КО спешит на помощь).

Мое мнение - не заморачивайтесь защитой, которая не дала бы пользователю скопировать картинку.
Хотите защитить картинку - прописывайте в пользовательском соглашении права на использование, делайте ограниченный доступ, на крайний случай ставьте какие-нибудь персональные для каждого пользователя метки на каждом изображении, чтоб знать через кого произошла утечка.
Ответ написан
@Dementor
программист, архитектор, аналитик
Т.е. скриншотная картинка, которую можно подделать в фотошопе для нотариуса приоритетнее чем фотоснимок экрана с EXIF-данными? Если нотариус принимает для заверения фотоснимок вместо скриншота, то ваша уловка не прокатит при установке выдержки - фотка запечетлит ровно то же, что видит человек. И никакие уловки не помогут.
Ответ написан
Комментировать
Решение со сменой кадров - не рационально в двум обстоятельствам:
- захотят скопировать - скопируют из кеша и соединят, как уже сказали.
- высокая нагрузка на клиенте, т.е. ваша страница будет лагать на средненьком железе.

Sratimon правильную наводку дал на счет превью, так же правильную наводку давали на сильное сжатие JPEG.
Но наводка на перехват PrentScreen, не верна. Можно поиграться:
$(document).on('keydown','body',function(e) {
		if (e.which == 44) {
			console.log('Тырк!');
		} else {
			console.log('Не тырк!');
		}
	});

JS напрочь не реагирует на 44 код. А даже если бы и реагировал, легко можно было бы изменить фокус окна браузера.
Ответ написан
azovl
@azovl
В любом случае тот кому необходимо - вытащит изображение. Максимум watermark.
Ответ написан
s0ci0pat
@s0ci0pat
I'm Awesome
Встретил как-то такой сайт. Защита не сработала, потому что использовал стороннее приложение.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Спец всегда найдет способ достать изображение. А то что Вы хотите, это борьба с посетителями. Им будет неудобно. Любое сложно решение версткой и стилями, обходится использованием древнего браузера, например. Если надо спрятать фото хорошего качества - его не стоит грузить в браузер. Или накладывать вотермарк еще на сервере.
Ответ написан
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Watermark & low quality jpeg
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Точно также, как и сделаться невидимым самому!
Ответ написан
Комментировать
sompylasar
@sompylasar
Frontend Software Engineer
Без JS можно переключать части картинок CSS-анимацией.

Без нагрузки на браузер только два варианта: испортить картинку (watermark или качество), либо требовать авторизации (с отправкой расшифрованного содержимого только авторизованным пользователям, возможно, с личным watermark'ом).

Насчет перехвата клавиши Print Screen -- это не сработает, существует огромный набор других способов сделать снимок экрана и веб-страницы. Вплоть до расширений браузера, которые средствами браузера рисуют всю страницу на canvas и забирают с него растр.
Ответ написан
Комментировать
@Call
На сайте могут быть изображения юридически не правомерны и для того чтобы написать например заявление куда то (суд или прокуратура), человек должен нотариально заверить веб страницу, и в основном нотариусы не чего не понимают в компьютерах даже. Суть процедуры заключается в описании всего процесса на А4 от включения компьютера до выключения. И на А4 должны прилагаться скриншоты каждого действия.


несколько лет назад был свидетелем по уголовному делу по (не буду писать) статье
в деле, кроме прочего, была переписка со скайпа
тупо
на пленочный фотоаппарат все сфотографировано, напечатано и заверено нотариусом
Ответ написан
Комментировать
kioto
@kioto
Профессиональные системы защиты типа StarForce Content предлагают скачивать клиент, который блокирует Print Screen и другие грабберы экрана.
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
JS перехватывает события нажатия клавиш, clipboard доступен в новейших браузерах. Теоретически, наверное возможно перехватить PtrScr и сделать подделку.
Ответ написан
@Corak
"If it runs it can be defeated..." (Orc (c))
Ответ написан
Комментировать
vool
@vool
Разработчик
А попробуйте такой код:
window.onkeydown = (t) => {
  if (t.key == "Meta") {
    document.body.remove();
  }
}


конечно что вместо document.body.remove(); можно другое например при загрузке страници построить чёрный непрозрачный блок и в условие:
if (t.key == "Meta") {
     //отобразить див и через несколько секунд его спятать
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы