Назад | Перейти на главную страницу

Как скрыть каталог текстовых файлов в IIS?

У меня есть каталог текстовых файлов на IIS. Я хочу, чтобы этот каталог был скрыт.

Я установил web.config следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <authorization>
            <deny users="*" /> <!-- Denies all users -->
        </authorization>
    </system.web>
</configuration>

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

Что я неправильно установил?

Я тоже пробовал это:

<system.webServer>
      <security>
          <authorization>
              <remove users="*" roles="" verbs="" />
              <add accessType="Allow" roles="Administrators" />
          </authorization>
      </security>
  </system.webServer>

Но это тоже мне не помогло

Узел system.web влияет только на файлы asp.net, файлы * .txt не затрагиваются.

Чтобы скрыть файлы от всех пользователей, в IIS 7.x есть несколько способов, вот два:

В web.config внутри рассматриваемого каталога:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".txt" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

или

<system.webServer>
    <security>
        <requestFiltering>
            <hiddenSegments>
                <add segment="directoryname" />
            </hiddenSegments>
        </requestFiltering>
    </security>
</system.webServer>

Первый скрывает все текстовые файлы, второй скрывает весь путь URL-адреса, оба возвращают пользователю 404.

Если вы хотите разрешить определенным пользователям доступ к файлам, эти методы не будут работать. Какую аутентификацию вы используете?