Как защитить оригинальные изображения, если у Вас битрикс

Алексей,

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

В каталоге у них размещены изображения в достаточно хорошем качестве (1998 на 1427 пикселей), но с водяным знаком.

Ссылка на данный файл имеет вид: /upload/resize_cache/iblock/2d9/1999_1427_1e7a9a3edf0396df2650852cd55788420/2d9016b8a6f91649cdeff6d6beab944f.jpg

Для того что бы получить оригинал нужно убрать папку /resize_cache/ и папку с указанием размеров "ресайза" /1999_1427_*/. В итоге получим такую ссылку /upload/iblock/2d9/2d9016b8a6f91649cdeff6d6beab944f.jpg, перейдя по которой мы сможем скачать оригинал в разрешении 2000 x 1428 пикселей и без водяного знака.

Как быть?

Самый простой вариант - изменить путь к "обрезанному" изображению (изображению с водяным знаком) так, что бы не было возможности получить ссылку на оригинал.

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

Далее в процессе "ресайза" можно добавить символическую ссылку на изображение, таким образом изменив путь к файлу. Примерно так:

$fileName1920 = '/images/'.$arResult['DETAIL_PICTURE']['FILE_NAME'];
$file = CFile::ResizeImageGet($arResult['DETAIL_PICTURE'], array('width' => 1920, 'height' => 1080), BX_RESIZE_IMAGE_PROPORTIONAL, true);
if (!is_link($_SERVER['DOCUMENT_ROOT'].$fileName1920)) {
	symlink($_SERVER['DOCUMENT_ROOT'].$file["src"], $_SERVER['DOCUMENT_ROOT'].$fileName1920);
} elseif ($_SERVER['DOCUMENT_ROOT'].$file['src'] != realpath($_SERVER['DOCUMENT_ROOT'].$fileName1920)) {
	unlink($_SERVER['DOCUMENT_ROOT'].$fileName1920);
	symlink($_SERVER['DOCUMENT_ROOT'].$file["src"], $_SERVER['DOCUMENT_ROOT'].$fileName1920);
}
$arResult['DETAIL_PICTURE']['SRC'] = $fileName1920;

В итоге, вместо страшной и "раскрывающей" оригинал ссылки
/upload/resize_cache/iblock/2d9/1999_1427_1e7a9a3edf0396df2650852cd55788420/2d9016b8a6f91649cdeff6d6beab944f.jpg,
получим красивую и безопасную
/images/gostinaya-139.jpg

Опубликовано 25 Сентября 2017 | Обновлено 27 Августа 2019
разработчику, делаюИМ, баг

Возврат к списку

Комментарии