Blockieren Sie den Zugriff auf das Unterverzeichnis mit Web.config

8

Ich habe ein Unterverzeichnis in meinem ASP.NET-Projekt, das Dienstprogrammdateien enthält. Sie werden vom Code zur Laufzeit benötigt, aber ich möchte nicht, dass sie über das Web sichtbar sind.

Wie lautet die Syntax in einer Web.config-Datei, um den Zugriff aller Benutzer auf ein einzelnes Unterverzeichnis und dessen gesamten Inhalt zu blockieren?

Joel Spolsky
quelle

Antworten:

15

IIS 7 verfügt über eine neue Funktion zum Anfordern von Filtern. Sie möchten wahrscheinlich die Konfiguration für versteckte Segmente verwenden:

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

Dies führt dazu, dass http: // yoursite / bin nicht bedienbar ist (aber http: // yoursite / bin funktioniert immer noch)

Überprüfen Sie heraus: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering

MattB
quelle
2
Dies blockiert aber auch Ihre Site / bla / bin / test .... :-(
Carsten Schütte
Keine Antwort auf die Frage, aber auch nützlich für das jeweilige Thema. Mit HttpHandlers können Sie auch bestimmte gewünschte Dateierweiterungen blockieren. Dies ist auch eine gute Vorgehensweise, z. B. Blockieren von Quell- / Datenbankdateien usw.
rollt am
1

Ihr Problem ist, dass ASP.Net niemals die Möglichkeit hat, sich einzumischen, wenn IIS einfach die Dateien zurückgibt. Ich glaube, dass dies durch Aktivieren der formularbasierten Authentifizierung und erhebliches Herumspielen erreicht werden kann, aber ich würde die Dateien einfach außerhalb des Ordners wwwroot verschieben.

JR

John Rennie
quelle
0

Das sollte funktionieren:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
John Rasch
quelle
2
Das funktioniert nicht, weil die Dateien TXT-Dateien sind ... Ich denke, John Rennie hat Recht, dass ASP.NET keine Chance bekommt, TXT-Dateien zu stören.
Joel Spolsky
Das ist gut zu wissen, ich habe immer ausschließlich Dateien, die über die ASP.NET-Handler in meinen Verzeichnissen bereitgestellt werden, über das Web zugänglich gemacht, sodass ich nie auf dieses Problem
John Rasch