Разрешить открытый доступ к файлу в защищенном каталоге

  • Автор темы vertyall
  • 74
  • Обновлено
  • 13, May 2024
  • #1
Во-первых, мои извинения — я новичок в области файлов конфигурации сервера Apache. Тем не менее, я потратил несколько дней, пытаясь найти ответ на эту проблему самостоятельно, но безуспешно. Итак, я ищу места, где можно обратиться за помощью к тем, кто мудрее меня в этом вопросе.
СЦЕНАРИЙ: У нас есть безопасный каталог, и для доступа к содержимому внутри него требуется имя пользователя и пароль. В этом примере это называется «безопасным». Внутри этого каталога находится файл (opensecure.html в этом примере), которые мы хотим, чтобы пользователи могли запрашивать с сервера без запрашивается учетные данные для входа. Мы попытались использовать директиву внутри директивы , чтобы переопределить другие директивы безопасности в .

ВОПРОСЫ:
  • Этот сценарий вообще правдоподобен? Можете ли вы использовать директивы в для переопределения директив родительского ?
  • Разумен ли этот сценарий или есть лучший способ сделать это?
  • Если предположить, что именно так мы достигаем нашей цели, что мы делаем не так?


Вот образец (самой последней) конфигурации сервера (в некоторых местах анонимизированной), действующей в настоящее время: <Каталог /testsite/secure> Аллововерид аутконфиг Опции Нет Тип аутентификации Базовый имяаутентификатораимя_сервера Профильтокен включен Разрешить заказ, Запретить Разрешить от всех Требовать действительного пользователя ИД пользователя %%CLIENT%% Файл пароля %%SYSTEM%% <Файлы opensecure.html> Разрешить от всех Разрешить заказ, Запретить Требовать все предоставленные
ЖЕЛАЕМОЕ ПОВЕДЕНИЕ: Конечный пользователь может получить доступ opensecure.html без необходимости ввода учетных данных для входа.
РЕАЛЬНЫЙ РЕЗУЛЬТАТ: В зависимости от предпринятой настройки пользователю либо 1) по-прежнему предлагается ввести учетные данные для входа, либо 2) вызывает внутреннюю ошибку сервера.

vertyall


Рег
15 Feb, 2016

Тем
1

Постов
2

Баллов
12
  • 18, May 2024
  • #2
К сожалению, никаких изменений. На самом деле я начал с этого за пределами , пока не прочитал в документации, что « можно вкладывать в разделы , чтобы ограничить часть файловой системы, к которой они применяются». (https://httpd.apache.org/docs/2.4/mod/core.html#files

) Кроме того, не знаю, имеет ли это значение, но все эти директивы находятся в файле конфигурации сервера (/www/testsite/conf/httpd.conf), а не в файле .htaccess.
 

phantom6677


Рег
11 Mar, 2016

Тем
1

Постов
2

Баллов
12
  • 21, May 2024
  • #3
Тогда у вас адский бардак.

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

Затем, по мере поступления жалоб, найдите и исправьте ссылки, указывающие на дубликаты файлов.

Таким образом, ваш сайт по-прежнему будет доступен всем, просто с неудобством входа в систему для тех, кто не жалуется.

Со временем большинство, если не все ссылки, будут исправлены, не останавливая все и не исправляя их все сейчас.

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

vinni8


Рег
03 Oct, 2013

Тем
0

Постов
2

Баллов
2
  • 03, Jun 2024
  • #4
Спасибо за быстрый ответ.

К сожалению, эта конкретная конфигурация не работает в моей ситуации.

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

Наш сайт обслуживается IBM, и для аутентификации мы используем профили пользователей ОС IBM i. Итак, AuthUserFile нет.

(Пример документации и конфигурации для этой авторизации можно найти здесь: https://library.roguewave.com/display/SUPPORT/IBM+i+Apache+HTTP+-+Server+Authentication+using+IBM+i+user+profiles

) Итак, я попытался упростить директивы , чтобы они максимально соответствовали вашему примеру (см. ниже), но это не привело к заметным изменениям в поведении.

«Открытая» страница в защищенном каталоге по-прежнему запрашивает учетные данные для входа.
 <Directory "/testsite/secure">

AuthType Basic

AuthName "ServerName"

Require valid-user

UserID %%CLIENT%%

PasswdFile %%SYSTEM%%

ErrorDocument 401 "Unauthorized Access"

<Files "opensecure.html">

Require all granted

</Files>

</Directory>
Код (ApacheConf): Возможно, моя проблема в том, что метод аутентификации для ОС IBMi каким-то образом требует другого подхода в конфигурации?
 

Александр Шейко


Рег
21 Dec, 2012

Тем
1

Постов
2

Баллов
12
  • 07, Jun 2024
  • #5
Я протестировал его сейчас на сервере, и он работает так, как вы хотите. Вот файл .htaccess из защищенного каталога.
 AuthType Basic
AuthUserFile /home/path/.htpasswd
AuthName "test"
require valid-user
ErrorDocument 401 "Unauthorized Access"

<Files "opensecure.html">
Require all granted
</Files>
Код (ApacheConf):
 

Ahrefs


Рег
12 Apr, 2011

Тем
0

Постов
3

Баллов
3
  • 07, Jun 2024
  • #6
Понимаю..не знаю, что сказать..

Для тестирования попробуйте использовать тестовую учетную запись/файл .htaccess.

Что-то простое

<Файлы "file.html">

Требовать ip СВОЙ-IP

только ваш IP должен иметь доступ к файлу

Затем,

<Файлы "file.html">

Требовать не ip СВОЙ-IP

только ваш IP не должен иметь доступа к файлу
 

churchill1


Рег
13 Oct, 2013

Тем
0

Постов
2

Баллов
2
  • 07, Jun 2024
  • #7
@mmerlinn, ты прав.

Это было бы более простое решение.

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

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

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

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

Мы могли бы сделать перенаправление, но я не уверен, что это сработает для всех файлов в моем сценарии.

В любом случае, спасибо за ваше предложение.

В конечном итоге это может стать нашим решением.
 

MastaDan


Рег
14 Jul, 2015

Тем
0

Постов
3

Баллов
3
  • 13, Jun 2024
  • #8
Я не эксперт по .htaccess, но попробуйте использовать раздел за пределами . <Файлы "opensecure.html"> Требовать все предоставленные <Каталог «/testsite/secure»> Тип аутентификации Базовый Имяаутентификатора "Имясервера" Требовать действительного пользователя ИД пользователя %%CLIENT%% Файл пароля %%SYSTEM%% ОшибкаДокумент 401 «Несанкционированный доступ»
 

osvet


Рег
20 Feb, 2011

Тем
2

Постов
9

Баллов
29
Тем
49554
Комментарии
57426
Опыт
552966

Интересно