В данной записи я вам покажу как защитить ваши изображения от плагиата. Мы с вами пропишем скрипт, который позволяет запретить скачивание ваших изображений с сайта. Мой способ поможет защититься как от парсинга, так и от прямого захода пользователя на изображение.
Для начала давайте пропишем необходимую вёрстку. В качестве изображения я буду использовать прозрачную заглушку, которая будет растягиваться во весь контейнер. Для этого пропишем тег img с атрибутом scr во внутрь которого пропишем код изображения в формате base64.
Само изображение будет выводиться через background, но и тут не так всё просто…
Обычно разработчики просто прописывают путь до изображение в свойство background. При таком способе любой контент-менеджер может скопировать путь в инспекторе и вставить его в адресную строку.
Такой способ я прозвал дурак ловит дурака!)))
Вот что предлагаю я… прописать путь до PHP скрипта, там с помощью PHP получать изображение из БД и выводить его на страницу, передав специальные заголовки.
HTML
Вёрстка у нас выглядит следующим образом:
<div class="wrapperPage">
<div class="imageBlock" style="width: 1000px;height: 700px;background:url(../api/images_security/index.php?showimg=6203995) no-repeat;background-size: cover;
background-position: center center;">
<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" style="width: 100%; height: 100%;">
</div>
</div>
PHP
В PHP вам нужно самостоятельно определиться как вы будете получать изображение. Я для получения изображения передаю в скрипт GET параметр showimg, в котором указываться ID изображения. По этому ID я и получаю необходимое изображение.
if(!empty($_GET['showimg'])) {
/* проверяем переход пользователя или служебное выполнение */
$block = $_SERVER['HTTP_REFERER'];
if (strlen($block) > 1) {
/* здесь получаем картинку из БД */
/* -------- */
/* ------------------------------ */
$imagePath = "сюда_записываю_путь_до_картинки;
/* получаем тип файла */
$typeFile = pathinfo($imagePath, PATHINFO_EXTENSION);
if($typeFile == "png") {
$img = imagecreatefrompng($imagePath);
header('Content-Type: image/png');
} elseif($typeFile == "jpeg" || $typeFile == "jpg") {
$img = imagecreatefromjpeg($imagePath);
header('Content-Type: image/jpeg');
}
// Выводим изображение
imagejpeg($img);
imagedestroy($img);
} else {
$img = imagecreatefrompng("https://adeta.ru/local/templates/adeta/images/icons/logo.png");
header('Content-Type: image/png');
// Выводим изображение
imagejpeg($img);
imagedestroy($img);
}
}