Perl: получить статус .htaccess для текущей папки. - PullRequest
1 голос
/ 28 августа 2009

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

Проводник в основном используется для выбора изображений из указанной папки и подпапок. Поскольку некоторые школы занимаются распространением изображений за пределами своего учреждения, мы дали им возможность защитить свои фотографии с помощью .htaccess (фактически через Web-интерфейс, который, в свою очередь, устанавливает .htaccess), если они хотят.

Когда я пытаюсь получить доступ к папке, защищенной .htaccess, мне предлагается пароль для каждого изображения в этой папке. Стоит отметить, что учителя, как правило, делают более 100 картинок на каждом крупном мероприятии и любят складывать его в одну папку, поэтому на самом деле браузер открывает более 100 диалоговых окон.

Мы запускаем Perl в бэкэнде, поэтому я подумал, что смогу проверить, защищена ли данная папка или нет, перед доставкой контента в jQuery. Проблема в том, что изображения также могут быть защищены .htaccess из родительской папки.

Есть ли какой-нибудь безопасный способ проверить, может ли посторонний получить доступ к этим изображениям (или файлам, чтобы они были общими и открыты для других целей), прежде чем выдавать изображения?

EDIT - добавлен файл .htaccess
## OLEFA AUTH START ##
AuthType Basic
AuthName "192.168.1.120/resources/images/accesstest"
AuthUserFile /home/mike/workspace/olefa//resources/images/accesstest/.htpasswd
требуется действительный пользователь
## OLEFA AUTH END ##

Ответы [ 2 ]

1 голос
/ 28 августа 2009

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

0 голосов
/ 28 августа 2009

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

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

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

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

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

  • Какой тип аутентификации вы используете? Основное, дайджест, что-то еще?
  • Используете ли вы пользовательский обработчик авторизации?
...