WernerK: IIS Verzeichnisschutz on the fly

Hallo,

ich hatte mal bei einem alten Projekt unter XAMPP (mit Apache) einen Verzeichnisschutz "on the fly" erstellt. Ein PHP Script hatte eine .htaccess und .htpasswd erstellt und in ein zu schützendes Verzeichnis im DocumentRoot kopiert.

Jetzt hätte ich solch eine Anforderung mit PHP in einem IIS 10. Leider habe ich mit dem IIS kaum Erfahrung. Kann man hier auch diese .htaccess Dateien für Verzeichnisschutz nutzen?

Ich habe gelesen das es hier web.config Dateien gibt. Kann man diese event. mit PHP erstellen lassen und ein individuelles Verzeichnis mit einem Usernamen und Passwort schützen?

Gruss

Werner

  1. Tach!

    Leider habe ich mit dem IIS kaum Erfahrung. Kann man hier auch diese .htaccess Dateien für Verzeichnisschutz nutzen?

    Nein, das ist etwas Apache-spezifisches.

    Ich habe gelesen das es hier web.config Dateien gibt. Kann man diese event. mit PHP erstellen lassen und ein individuelles Verzeichnis mit einem Usernamen und Passwort schützen?

    Jein, damit kannst du nur generell die Authentifizierungsvariante einschalten. Die Nutzer- und Gruppenverwaltung geht dann bei Basic Authentication über die Dateiberechtigungen im Betriebssystem. Dazu gibt es aber bereits genug Literatur im Internet (findbar mit: iis basic authentication), so dass ich mir hier die Details spare.

    dedlfix.

    1. Hallo,

      danke dir.

      Also kann man sagen, dass ein solches Vorhaben mit dem IIS nicht geht:

      1. mit PHP ein einmaliges Verzeichnis anlegen
      2. Danach einen Verzeichnisschutz mit individuellem Username und Passwort anlegen.

      Hintergrund: Ich wollte Zip Dateien erstellen und diese per Download Link Usern bereitstellen. Die Verzeichnisse aber halt schützen.

      Gruss

      Werner

      1. Hello,

        Hintergrund: Ich wollte Zip Dateien erstellen und diese per Download Link Usern bereitstellen. Die Verzeichnisse aber halt schützen.

        Das geht beim IIS nicht viel anders, als beim Apache!

        Man speichert die Dateien außerhalb der DocumentRoot bzw. des Web-Subfolders und stellt innerhalb des HTTP-Bereiches ein Skript zur Verfügung, dass einerseite Zugriffsrechte auf das Ablageverzeichnis hat und andererseits die Rechte des Clients auf die Objekte prüfen kann, bevor es sie ausliefert.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.
        1. Hallo Tom,

          verstehe ich nicht so ganz. Wenn es ausserhalb des inetpub (bzw. Documentroot) ist, kann man doch nicht mehr mit http://meinverzeichnis/123/meine.zip darauf zugreifen oder?

          Was meinst du mit "Script" bereitstellen? Kannst du mal ein Beispiel oder einen Link mit Beispiel zeigen? Das ganze sollte halt später mit PHP on the fly für jeden User passieren.

          Gruss

          Werner

          1. Hello,

            verstehe ich nicht so ganz. Wenn es ausserhalb des inetpub (bzw. Documentroot) ist, kann man doch nicht mehr mit http://meinverzeichnis/123/meine.zip darauf zugreifen oder?

            Das kommt darauf an, welche Active Scripts auf den Requesttyp reagieren.

            Was meinst du mit "Script" bereitstellen? Kannst du mal ein Beispiel oder einen Link mit Beispiel zeigen? Das ganze sollte halt später mit PHP on the fly für jeden User passieren.

            Ich weiß leider nicht, wie man das für PHP auf IIS einrichtet.
            Für *.asp auf IIS geht das über die Berechtigungen. Das wird dann auf die Berechtigungen des Filesystems/Betriebssystems abgebildet und arbeitet im mandatory Mode. Das bedeutet auch, dass Zugriffe auf die Daten paralleler Prozesse automatisch über das OS koordiniert werden.

            Liebe Grüße
            Tom S.

            --
            Es gibt nichts Gutes, außer man tut es!
            Das Leben selbst ist der Sinn.
            1. Hallo Tom, Hallo dedlfix,

              ok, dann muss ich es vermutlich lassen da ich hier zu wenig Ahnung habe. Ich habe auch nur eine Möglichkeit dies via PHP auf dem IIS umzusetzen.

              viele Grüße

              Werner

          2. Tach!

            Wenn es ausserhalb des inetpub (bzw. Documentroot) ist, kann man doch nicht mehr mit http://meinverzeichnis/123/meine.zip darauf zugreifen oder?

            Deswegen erstellt man sich als Vermittler ein so genanntes Download-Script.

            Was meinst du mit "Script" bereitstellen? Kannst du mal ein Beispiel oder einen Link mit Beispiel zeigen? Das ganze sollte halt später mit PHP on the fly für jeden User passieren.

            Das Download-Script nimmt einen Parameter entgegen, den Dateinamen. Es schaut, ob der aktuelle Nutzer berechtigt ist, die Datei zu bekommen, und wenn ja, gibt es diese Datei aus. Man muss dazu allerdings beachten, dass man zur angeforderter Datei prüft, ob sie im Download-Verzeichnis liegt, nicht dass jemand relative Verweise einbaut und sich sonstwas aus dem System besorgt.

            dedlfix.

      2. Tach!

        Also kann man sagen, dass ein solches Vorhaben mit dem IIS nicht geht:

        1. mit PHP ein einmaliges Verzeichnis anlegen
        2. Danach einen Verzeichnisschutz mit individuellem Username und Passwort anlegen.

        Es geht schon, nur delegiert der IIS diese Aufgabe teilweise ans Betriebssystem, und da würde ich dann lieber doch nicht mit PHP in den Berechtigungen rumfummeln.

        Hintergrund: Ich wollte Zip Dateien erstellen und diese per Download Link Usern bereitstellen. Die Verzeichnisse aber halt schützen.

        Es ist sowieso schöner, wenn man das Anmeldeformular direkt in der Webseite hat und sieht, dass man sich anmelden muss, als dass man einen Link klickt, der dann erstmal die Schranke zeigt, die man überwinden muss. Also wie TS schon vorgeschlagen hat, lieber ein Download-Script erstellen.

        dedlfix.