Вопрос

Я разработал что-то вроде 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
требуется действительный пользователь
## ОЛЕФА АУТ КОНЕЦ ##

Это было полезно?

Решение

Возможно, вы захотите изучить вариант: хранить в каждом каталоге файл-заполнитель, не являющийся изображением, и извлекать его перед изображениями.Если вам не удалось его получить, вы не выполняете извлечение образа и интерпретируете это как означающее, что каталог защищен от этого пользователя.Таким образом, у вас появится только одно диалоговое окно с паролем, и если у них есть действительные имя пользователя и пароль, браузер запомнит их для поиска изображений.

Другие советы

Похоже, вы слой за слоем строите код исправления несовершенного проекта или процесса.

Если вы получаете диалоговое окно имени пользователя и пароля для каждого изображения из одного и того же каталога, я изначально подозреваю:

  1. htaccess как-то неправильно настроен.Можете ли вы показать нам, что у вас есть?
  2. Пользовательский агент не отправляет заголовок авторизации.Просмотрите HTTP-запросы и убедитесь, что вы видите заголовок авторизации.Также обратите внимание на статус ответа.Это 401 или 403?

Если вы пытаетесь получить доступ к ресурсам по разным путям, используете ли вы разные области для каждой папки?Полномочия применимы только к сфере, представившей вызов.Если вы получите доступ к другому миру и вам придется начинать все сначала.Как вы это указываете в своем htaccess?

Еще некоторые вещи, которые могут нам помочь:

  • Какую аутентификацию вы используете?Базовый, Дайджест, что-то еще?
  • Используете ли вы собственный обработчик авторизации?
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top