Что заменяет .htaccess на сайтах IIS / ASP.NET? - PullRequest
7 голосов
/ 25 ноября 2008

На сайтах Apache / PHP, если я хочу поместить чувствительный файл в папки моего сайта, я помещаю файл .htaccess в эту папку, чтобы пользователи не могли загрузить чувствительный файл.

Существует ли аналогичная практика для сайтов IIS / ASP.NET , т. Е. Если у меня общая учетная запись хостинга и у меня нет доступа к серверу IIS. Могу ли я сделать это, например, в файле web.config?

например. файл ASPNETDB.MDF, который Конфигурация ASP.NET помещает в каталог App_Data. Я бы предположил, что это защищено по умолчанию, но где я могу изменить настройки для этой папки, как я мог бы с помощью файла .htaccess?

Ответы [ 5 ]

7 голосов
/ 25 ноября 2008

Внутри ASP.Net web.config вы можете настроить места для повышения безопасности определенных файлов и папок. Кроме того, вы можете удалить все глаголы из этих каталогов:

<location path="Secret" allowOverride="false">
  <system.web>
    <authorization>
      <deny users="*" />
    </authorization>
    <httpHandlers>
      <remove path="*.*" verb="*"/>
    </httpHandlers>
  </system.web>
</location>

Я использовал только часть авторизации этого фрагмента, и он прекрасно работает. Обработчик должен дополнительно заблокировать его, и использование фильтра ISAPI сможет навести на него последние штрихи.

1 голос
/ 06 февраля 2010

IIS автоматически блокирует доступ к папке / app_data и не будет обслуживать содержимое оттуда.

1 голос
/ 29 ноября 2008

Ну, если вы можете получить доступ к настройкам IIS, UrlScan может помочь. Для IIS 7 фильтрация запросов может сильно помочь.

http://learn.iis.net/page.aspx/473/using-urlscan

http://learn.iis.net/page.aspx/143/how-to-use-request-filtering/

0 голосов
/ 25 ноября 2008

Есть два случая:

  • Если сервер использует IIS7, то для всех файлов доступна эквивалентная функциональность, использующая подход web.config.
  • Если сервер использует IIS6 или более раннюю версию (и на данный момент это наиболее вероятный случай для общего хостинга), то это большая проблема. Если вы можете заставить все ваши запросы проходить через обработчик ASP.NET (который обычно требует доступа к серверу для настройки), тогда снова будет работать подход web.config, но в противном случае вам понадобятся другие инструменты и отзывчивый хостинг-провайдер. , По одной этой причине, вероятно, нужен IIS7 ...

При этом для asp.net есть файлы, которые все равно защищены по умолчанию - файлы в app_data, как уже упоминалось, плюс определенные типы файлов (например, .config). Кроме того, можно ожидать, что приличный хост предоставит каталог, который не доступен через Интернет - у нас есть личная и веб-папка, доступная через FTP, но только содержимое последнего через Интернет.

0 голосов
/ 25 ноября 2008

Есть некоторые вещи, которые вы можете сделать с помощью web.config, такие как определение настроек безопасности и т. Д ... В других случаях вы должны использовать HttpModules или HttpHandlers, посмотрите здесь: http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx

Если нет, вы можете найти другой ISAPI, но в этом случае вам нужен доступ к IIS. Например, ISAPI для эмуляции перезаписи мод apache:

> http://www.codeplex.com/IIRF

Другой вопрос: да, ASPNETDB.MDF в APP_Data защищен нормально (зависит от вашего администратора). Чтобы изменить путь, измените строку подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...