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?

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


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


0

Esto debería funcionar:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.