Запрет отображения оригинала фото по прямым ссылкам

Главные вкладки

Аватар пользователя DenisTZ DenisTZ 23 марта 2021 в 12:08

Есть ли возможность скрыть оригиналы фото (доступ по прямой ссылке) которые находятся в папке с общедоступными файлами ("Конфигурация - Мультимедиа - Файловая система" - "Общедоступный путь файловой системы" ). Но при этом сохранить функционал (автосоздание стилей при сбросе кэша и т.п.)
Сейчас достаточно удалить пару каталогов в url фото что бы без проблем открыть оригинал.
https://drupal.ru/node/136745 - похожая теме без ответа...

Комментарии

Аватар пользователя marassa marassa 23 марта 2021 в 12:20

Запросы фото по прямым ссылкам обрабатываются непосредственно веб-сервером безо всякого участия Друпала. Что если в настройках веб-сервера (.htaccess etc) закрыть доступ к оригиналам фото?

Аватар пользователя DenisTZ DenisTZ 23 марта 2021 в 13:13

Пробовал. Добавлял в корень с фото "Deny from all" (для файлов ico|jpg|jpeg|png|gif|) - в этом случае для новых фото не создаются стили ("мультимедиа" - "стили изображений" ).

Аватар пользователя DenisTZ DenisTZ 23 марта 2021 в 13:48

Только для директории с фото и делал. В ней лежат и папки со стилями (в них наоборот добавлял хтаксесс с разрешениями)

Аватар пользователя bsyomov bsyomov 23 марта 2021 в 14:01

Если всё так, и правильно работает, это не мешает создавать и отдавать порезанные картинки, и всё должно работать... Надо смотреть логи, и проверять .htaccess.

Аватар пользователя adano adano 24 марта 2021 в 20:18

Запросы фото по прямым ссылкам обрабатываются непосредственно веб-сервером безо всякого участия Друпала.

Утверждение в корне НЕ верно.

P.S. Для примера, удали любой стиль и затем открой его по прямой ссылке... Друпал его заново сгенерирует.
P.P.S. Есть нюансы с imagick и кривыми конфигами сервака.

Аватар пользователя bsyomov bsyomov 25 марта 2021 в 13:28

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

Аватар пользователя marassa marassa 23 марта 2021 в 13:18

Странно - казалось бы для создания стилей друпал добывает исходный файл не по HTTP, а непосредственно открывает файл на диске, где ему настройки веб-сервера не указ... А запрет доступа к фото точно касался только оригиналов и не захватывал директории со стилями?

Аватар пользователя Семенов Семенов 24 марта 2021 в 2:47

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

Аватар пользователя adano adano 24 марта 2021 в 19:56

Никак, только переводить файлы в приватные и ставить контриб Image Style Access (в нем можно оригиналы скрыть).

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

P.S. "Похожая тема" - она совсем о другом.

Аватар пользователя marassa marassa 24 марта 2021 в 21:37

adano wrote: Утверждение в корне НЕ верно.

Утверждение на 146% верно.

adano wrote: Для примера, удали любой стиль и затем открой его по прямой ссылке... Друпал его заново сгенерирует.

Естественно, потому что ошибка (отсутствие файла) передается на обработку Друпалу. Но если файл существует, то он отдается непосредственно веб-сервером, минуя Друпал. Это всё прямо прописано в .htaccess (для тех кто умеет его читать, конечно).

adano wrote: Есть нюансы с imagick и кривыми конфигами сервака

"У нас есть такие приборы!"(с)

Аватар пользователя adano adano 25 марта 2021 в 1:58

Но если файл существует, то он отдается непосредственно веб-сервером, минуя Друпал

Нет. Только, если есть какое-то статик-кэширование, то возможно.

Это всё прямо прописано в .htaccess

В курсе, что мир одним apache не ограничивается?

Аватар пользователя marassa marassa 25 марта 2021 в 7:01

adano wrote: Нет

Да. Кэширование ни при чем.

adano wrote: В курсе, что мир одним apache не ограничивается?

"Срезал!"© ;)))
Ты хочешь сказать, что под Апачем паблик-файлы отдаются напрямую, а под nginx или там iis пропускаются через Друпал? Я в шоке если честно, от тебя никак не ожидал...

PS Проведи небольшой эксперимент. На каком-нибудь дев-сайте удали или переименуй index.php. Сайт перестанет открываться. Теперь попробуй открыть любой существующий графической файл - хоть оригинал, хоть уже заведомо сгенеренный стиль. Открывается?

Аватар пользователя adano adano 25 марта 2021 в 7:52

Понял. Мы про разные контроли и не/доступность папки через браузер говорим...

P.S. В контексте топика, как и говорил, только в приватные переводить и контриб.