Blocca l'accesso alla sottodirectory utilizzando Web.config


8

Ho una sottodirectory nel mio progetto ASP.NET che contiene file di utilità. Sono necessari per il codice in fase di esecuzione, ma non voglio che siano visibili sul Web.

Qual è la sintassi in un file Web.config per bloccare l'accesso a tutti gli utenti a una singola sottodirectory e tutto il suo contenuto?

Risposte:


15

IIS 7 ha una nuova funzionalità di "filtro richieste". Probabilmente vuoi usare la configurazione dei segmenti nascosti:

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

Questo fa sì che http: // yoursite / bin non sia servibile (ma http: // yoursite / binary funziona ancora)

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


2
Ma questo bloccherà anche il tuo / bla / bin / test .... :-(
Carsten Schütte

Non una risposta alla domanda ma utile anche per l'argomento in questione. Puoi utilizzare HttpHandlers per bloccare anche le estensioni di file specifiche che desideri. Questa è una buona pratica di fare così, ad esempio, bloccare tutti i file sorgente / di database, ecc
rotoli

1

Il tuo problema è che se IIS restituisce semplicemente i file ASP.Net non avrà mai la possibilità di interferire. Credo che possa essere fatto abilitando l'autenticazione basata su moduli e una notevole confusione, ma sposterei semplicemente i file fuori dalla cartella wwwroot.

JR


0

Questo dovrebbe funzionare:

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

2
Non funziona perché i file sono file .txt ... Penso che John Rennie abbia ragione sul fatto che ASP.NET non abbia la possibilità di interferire con i file .txt.
Joel Spolsky

Buono a sapersi, ho sempre mantenuto i file serviti esclusivamente tramite i gestori di ASP.NET nelle mie directory accessibili via web, quindi non ho mai riscontrato questo problema
John Rasch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.