Перл:Получить статус .htaccess в текущей папке
-
20-09-2019 - |
Вопрос
Я разработал что-то вроде Server Explorer в качестве модуля для нашего веб-приложения, и он действительно отлично работает.Я вношу в него некоторые усовершенствования, и есть одна проблема, которую я действительно не знаю, как решить.
Проводник в основном используется для выбора изображений из указанной папки и подпапок.Поскольку некоторые школы обеспокоены распространением изображений за пределами своего учреждения, мы предоставили им возможность защитить свои изображения с помощью .htaccess (фактически через веб-интерфейс, который, в свою очередь, устанавливает .htaccess), если они этого захотят.
Когда я пытаюсь получить доступ к папке, защищенной .htaccess, мне предлагается пароль для каждого изображения внутри этой папки.Стоит отметить, что учителя, как правило, делают более 100 изображений для каждого крупного мероприятия и любят помещать их в одну папку, поэтому на самом деле нередко браузер открывает более 100 диалоговых окон.
Мы используем Perl в серверной части, поэтому я подумал, что могу проверить, защищена ли данная папка или нет, прежде чем доставлять содержимое в jQuery.Проблема в том, что изображения также можно защитить с помощью .htaccess из родительской папки.
Существует ли какой-либо безопасный способ проверить, может ли посторонний получить доступ к этим изображениям (или файлам, чтобы они оставались общими и открытыми для других целей), прежде чем раздавать изображения?
РЕДАКТИРОВАТЬ — добавлен файл .htaccess.
## НАЧАЛО АВТОРИЗАЦИИ OLEFA ##
Тип аутентификации Базовый
Имя аутентификации "192.168.1.120/resources/images/accesstest"
AuthUserFile /home/mike/workspace/olefa//resources/images/accesstest/.htpasswd
требуется действительный пользователь
## ОЛЕФА АУТ КОНЕЦ ##
Решение
Возможно, вы захотите изучить вариант: хранить в каждом каталоге файл-заполнитель, не являющийся изображением, и извлекать его перед изображениями.Если вам не удалось его получить, вы не выполняете извлечение образа и интерпретируете это как означающее, что каталог защищен от этого пользователя.Таким образом, у вас появится только одно диалоговое окно с паролем, и если у них есть действительные имя пользователя и пароль, браузер запомнит их для поиска изображений.
Другие советы
Похоже, вы слой за слоем строите код исправления несовершенного проекта или процесса.
Если вы получаете диалоговое окно имени пользователя и пароля для каждого изображения из одного и того же каталога, я изначально подозреваю:
- htaccess как-то неправильно настроен.Можете ли вы показать нам, что у вас есть?
- Пользовательский агент не отправляет заголовок авторизации.Просмотрите HTTP-запросы и убедитесь, что вы видите заголовок авторизации.Также обратите внимание на статус ответа.Это 401 или 403?
Если вы пытаетесь получить доступ к ресурсам по разным путям, используете ли вы разные области для каждой папки?Полномочия применимы только к сфере, представившей вызов.Если вы получите доступ к другому миру и вам придется начинать все сначала.Как вы это указываете в своем htaccess?
Еще некоторые вещи, которые могут нам помочь:
- Какую аутентификацию вы используете?Базовый, Дайджест, что-то еще?
- Используете ли вы собственный обработчик авторизации?