2010-10-27 2 views

ответ

22

Правильный способ делать то, что с помощью этого:

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

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

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

+0

Вышеприведенный код должен быть помещен в файл web.config в том же каталоге, что и каталог, из которого вы хотите запретить доступ. Я протестировал его на своем корневом уровне web.config и заблокировал доступ ко всему сайту. Вставка его в отдельный файл web.config в том же каталоге возвращает ошибку 404 при попытке получить доступ к каталогу (хотя я уверен, что тип возвращаемой ошибки может быть изменен в IIS). – Tiffany

1

Удалите разрешения IIS_IUSR из этой папки.

Я думаю, что его обобщенно под «гостевой учетной записью Интернета»

+3

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

+0

I Удаление IIS_IUSR будет работать в моем случае, я хочу сохранить там загрузки пользователей, теперь я сохраняю их где-то в стороне от папки веб-сайта на диске c: и эта папка загрузок не имеет разрешения IIS_IUSR, и я все еще могу доступ к нему из кода моего сайта. –

2

Как указывается только для ссылок, hiddenSegments - это правильный инструмент для работы. Перейдите на страницу IIS, затем site и в Features найти Request Filtering (должен быть установлен в Server Manager). Теперь добавьте имя каталога, которое вы хотите предотвратить доступ к любому сегменту URL-адреса. Такой подход не требует, чтобы уникальный URL или имя каталога будет использоваться в месте, в противном случае любого другого возникновения сегмента на любом уровне в URL, будет вызывать этот запрос будет заблокирован:

http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments

Смежные вопросы