Рейтинг:1

Разрешить перечисление файлов при просмотре каталога, но защиту (через HTTP-аутентификацию) при прямом доступе

флаг br

Я создал защищенный паролем каталог, используя .htaccess и .htpasswd, но файлы не отображаются, когда я перехожу к URL-адресу каталога.

у меня это в моем .htaccess:

#Защитить несколько файлов
<FilesMatch "^(.*).csv$">
AuthName "Диалоговое приглашение"                                                                                                                                                                                       
Основной тип авторизации
AuthUserFile /xxxxx/тест                                                                                                                                              
#AuthUserFile ".htpasswd"                                                                                                                                                                                      
Требовать действительного пользователя                                                                                                                                                                                             
</FilesMatch>       

Список каталогов - не отображаются файлы CSV

ОБНОВИТЬ: Я защищаю файлы CSV в этом каталоге. Они исчезают из списка каталогов, когда установлена ​​эта директива auth. Они появляются, когда я удаляю его. Я хочу иметь возможность хотя бы видеть файлы в списке каталогов, но при доступе к этим файлам будет предлагаться запрос аутентификации.

djdomi avatar
флаг za
Отвечает ли это на ваш вопрос? [как настроить apache для просмотра скрытых (\`.\`) файлов?](https://serverfault.com/questions/245922/how-to-configure-apache-to-view-hidden-files)
флаг kz
«когда я перехожу к _the_ URL» — какой URL? У вас есть директивы mod_auth... в `` контейнер, но судя по вашему снимку экрана, вы запрашиваете каталог? Пожалуйста, объясните, что именно вы пытаетесь защитить, какие запросы вы делаете и каков ожидаемый результат?
Patoshi パトシ avatar
флаг br
Я защищаю файлы CSV в этом каталоге. Они исчезают, когда устанавливается эта директива авторизации. Он появляется, когда я его удаляю. Я хочу иметь возможность хотя бы видеть файлы, но при доступе к этим файлам будет предлагаться запрос на аутентификацию.
Рейтинг:1
флаг kz

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

Когда список каталогов генерируется с использованием mod_autoindex, внутренний подзапрос выдается для каждого файла, который появляется в списке каталогов. При использовании <FilesMatch "^(.*).csv$"> контейнер, то он также обрабатывается для этих подзапросов и, следовательно, запись этих файлов в список каталогов также блокируется.

Альтернатива использованию <FilesMatch> директива заключается в использовании <If> выражение и тест против ЗАПРОС переменная сервера вместо этого. Это тогда только успешный когда .csv файлы фактически запрашиваются пользователем, а не при просмотре списка каталогов.

Например:

# Списки каталогов (mod_autoindex) должны быть включены
Опции +Индексы

# Защитить файлы CSV от доступа, но они все еще видны в списке каталогов
<If "%{THE_REQUEST} =~ m#\.csv(\s|\?)#">
AuthName "Диалоговое приглашение"                                                                                                                                                                                       
Основной тип авторизации
AuthUserFile /xxxxx/тест                                                                                                                                              
Требовать действительного пользователя                                                                                                                                                                                             
</Если>

ЗАПРОС содержит первую строку HTTP-запроса. например. ПОЛУЧИТЬ /foo/test.csv HTTP/1.1 (в случае запроса GET на /foo/test.csv) — и не меняется на протяжении всего запроса. Поэтому при запросе самого каталога, например. /фу/ то вложенный блок не обрабатывается и листинг этих файлов не блокируется.

Дополнительная сложность заключается в том, что ЗАПРОС содержит весь запрошенный URL-адрес, который может включать строку запроса. Итак, чек на (\с|\?) (т.е. пробел или же буквальный ?) заключается в том, чтобы избежать обхода проверки пароля, просто включив строку запроса. например. /foo/test.csv? что-нибудь.

Ответить или комментировать

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