Bloquee el acceso al subdirectorio usando Web.config

8

Tengo un subdirectorio en mi proyecto ASP.NET que contiene archivos de utilidades. El código los necesita en tiempo de ejecución, pero no quiero que sean visibles en la web.

¿Cuál es la sintaxis en un archivo Web.config para bloquear el acceso de todos los usuarios a un solo subdirectorio y todo su contenido?

Joel Spolsky
fuente

Respuestas:

15

IIS 7 tiene una nueva característica de "filtrado de solicitudes". Probablemente desee utilizar la configuración de segmentos ocultos:

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

Esto hace que http: // yoursite / bin no sea servible (pero http: // yoursite / binary aún funciona)

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

MattB
fuente
2
Pero esto también bloqueará yourite / bla / bin / test .... :-(
Carsten Schütte
No es una respuesta a la pregunta, pero también es útil para el tema en cuestión. También puede usar HttpHandlers para bloquear las extensiones de archivo específicas que desee. Esta es una buena práctica para hacer así, por ejemplo, bloquear cualquier archivo de fuente / base de datos, etc.
rollos
1

Su problema es que si IIS simplemente devuelve los archivos, ASP.Net nunca tendrá la oportunidad de interferir. Creo que se puede hacer habilitando la autenticación basada en formularios y un considerable desorden, pero simplemente movería los archivos fuera de la carpeta wwwroot.

JR

John Rennie
fuente
0

Esto debería funcionar:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
John Rasch
fuente
2
Eso no funciona porque los archivos son archivos .txt ... Creo que John Rennie tiene razón en que ASP.NET no tiene la oportunidad de interferir con los archivos .txt.
Joel Spolsky
Eso es bueno saberlo, siempre me he mantenido exclusivamente archivos servidos a través de los manipuladores de ASP.NET en mis directorios accesibles a través de Internet por lo que nunca encontré con este problema
John Rasch