Запретить доступ к определенной папке в IIS 7 в приложении php - PullRequest
0 голосов
/ 02 февраля 2009

У меня PHP-приложение, работающее на IIS7. Я хочу защитить определенную папку, изменив web.config. Я не хочу использовать тег <location> в конфигурации, так как это перенаправит пользователей на страницу входа. Скорее, я хотел бы реализовать HttpNotFoundHandler.

Скажем, например, http://domain.com/SecureFolder - это каталог, в котором я хочу реализовать HttpNotFoundHandler. Когда пользователь пытается получить доступ к этой папке, должна отображаться страница 404.

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

<?xml version="1.0"?>
<configuration>
  <connectionStrings />
  <appSettings />
    <system.web>
      <customErrors mode="RemoteOnly"></customErrors>
      <httpHandlers>
        <add path="~/securefolder" verb="*" type="System.Web.HttpNotFoundHandler" validate="true"/>
      </httpHandlers>
    </system.web>
</configuration>

Ответы [ 4 ]

0 голосов
/ 24 октября 2013

На самом деле, я бы рекомендовал сделать это на уровне IIS, используя функцию, разработанную для этого, называемую Фильтрация запросов. Вы можете просто добавить файл конфигурации, например:

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

См .: Фильтрация запросов для получения дополнительной информации

0 голосов
/ 02 марта 2009

Вы можете использовать Модуль перезаписи URL , чтобы написать пользовательское действие ответа.

Действие CustomResponse вызывает URL переписать модуль для ответа на HTTP клиент с помощью указанного пользователем код состояния, субкод и причина. Использование действия CustomResponse подразумевает что никаких последующих правил не будет оценивается для текущего URL, после это действие выполнено.

0 голосов
/ 14 июля 2010

Разве путь не должен быть чем-то вроде path="securefolder/*.*"?

У меня это работает на IIS6, но расширения файлов, не назначенные для фильтра ASP.NET ISAPI, обслуживаются IIS (т. Е. * .Txt), поэтому мне пришлось назначить .txt фильтру ASP.NET ISAPI на IIS.

0 голосов
/ 02 февраля 2009

Вам понадобится отображение с подстановочными знаками. Проверить: http://blogs.iis.net/ruslany/archive/2008/09/30/wildcard-script-mapping-and-iis-7-integrated-pipeline.aspx

Оттуда вы можете проанализировать URL и определить, следует ли вам бросить 404 или нет.

...