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?

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


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


0

Das sollte funktionieren:

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.