Lokale Internbereiche sind passwortgeschützte Internbereiche, die mittels den Server-Steuerungsdateien .htaccess und .htpasswd erzeugt werden.

Eigene Interne Bereiche per .htaccess und .htpasswd

Unabhängig von dem Angebot mit globalen Usern kann man sich auch einen Internen Bereich mittels .htaccess und .htpasswd-Dateien anlegen, wie z.B. bei de.selfhtml.org beschrieben.

Tip: Unter Windows kann man leider nur über einen Umweg eine Datei erstellen, deren Namen mit einem Punkt beginnt: Im Speichern-Dialog den Namen in Gänsefüschen schreiben, also beispielsweise ".htaccess".

Als Verzeichnisbaum sieht das dann beispielsweise so aus:

Gliederungs-Account/
|- private_data/
|    |- .htpasswd
|- public_html/
|    |- Verzeichnis, öffentlich zugänglich/
|    |    |- ...
|    |- Verzeichnis, geschützt/
|    |    |- .htaccess
|    |    |- geschützte dateien.html
|    |- index.html
|    |- ...
|- ...

Bitte für die PHP-Version des Layouts die unten stehenden Hinweise beachten!

.htaccess

Die .htaccess-Datei wird dabei in das Verzeichnis abgelegt, welches geschützt werden soll, eventuelle Unterverzeichnisse werden dabei ebenfalls geschützt.

Beispiel für eine .htaccess-Datei:

AuthBasicAuthoritative On
AuthName	"Name des Internbereiches"
AuthType	Basic
AuthUserFile	/var/www/gliederungen/LV/BEZ/OG/private_data/.htpasswd

Require valid-user

Statt in /private_data/ kann die .htpasswd-Datei auch in /public_html/ abgelegt werden (oder irgendwo in einem Unterverzeichnis), dies empfiehlt sich aber nicht unbedingt.

Sollen alle Benutzer ausgesperrt werden, ist die einfachste Art, dass die .htaccess Datei nur folgende Zeile enthält:

Require valid-user


.htaccess und Typo3 / ISC

Layout 2019

Interne Bereiche funktionieren nur in einem der Seitenbäume im TYPO3. Entweder im Layout 2013 oder im Layout 2019.

Für einen internen Bereich, der

  • im ISC angelegt wurde und
  • und mit Typo3 in der Homepage eingebunden wurde

ist nur folgende Zeile in der .htaccess Datei erforderlicht:

Require valid-user

Damit wird der Zugang grundsätzlich unterbunden. Erst durch eine Anmeldung im internen Bereich bekommt man Zugang zu den Dateien.

Die Datei .htpasswd ist in diesen Fall nicht erforderlich.

.htpasswd

Die .htpasswd-Datei enthält pro Benutzer eine Zeile der Art

benutzer:anwo82mXfywio

Dies steht für die verschlüsselte Kombination aus Benutzernamen und Passwort, wobei sich der Benutzer natürlich das unverschlüsselte Passwort merkt, nicht diese zugegebenermaßen sehr kryptische Zeichenkette.

Passende Benutzer-Passwortkombinationen müssen über das Internet Service Center (ISC) (Tools -> .htpasswd-Passwort) erzeugt werden. Andere Verschlüsselungsmethoden, die vereinzelt im Web angeboten werden, funktionieren nicht.

.htaccess und include

.htaccess schützt ein Verzeichniss zwar vor dem Zugriff von außen, jedoch nicht den Zugriff durch den eigenen Webserver. Somit wird bei dem Aufruf

index.php?doc=MEIN_GESCHUETZER_BEREICH/admin

die Seite ohne eine Passwortabfrage angezeigt, wenn das Verzeichnis MEIN_GESCHUETZER_BEREICH ein Unterverzeichnis vom content-Verzeichnis ist.

Lokale Internbereiche mit der PHP-Version 1. Möglichkeit

Daher empfiehlt es sich in dem geschützen Bereich nochmal die index.php abzulegen bzw. dort eine eigenständige Seite aufzubauen. Der Aufruf

MEIN-GESCHUETZER-BEREICH/index.php?doc=admin

ruft dann auch eine Passwortabfrage auf. Hierbei wird nicht innerhalb des Servers gearbeitet sonder von außen auf das Verzeichniss zugegriffen.

Der geschützte Ordner darf nicht im Verzeichniss "content/" liegen! Er sollte sich im Hauptverzeichniss befinden.

Beispiel, wie dann das Homepage-Root aussieht:

Homepage-Root
|- content/ (hier liegen die öffentlichen inc-Dateien)
|- .htaccess (die normale mitgelieferte)
|- index.php
|- location.inc
|- geschuetztes_verzeichnis/
|    |- content/ (hier liegen die geschützten inc-Dateien)
|    |- .htaccess (die um den Passwortschutz ergänzte)
|    |- index.php
|    |- location.inc
...

Lokale Internbereiche mit der PHP-Version 2. Möglichkeit

Hinweis:
Der Container <Files> ergibt zusammen mit der langen URL leider einen 500er-Fehler, auch die lange URL aller Untergliederungen sind davon betroffen! Für Gliederungen mit untergeordneten Gruppen ist diese Methode daher ungünstig, da die untergeordneten Gruppen dann ebenfalls betroffen sind und so nicht Typo3 und gleichzeitig z.B. das Wachplanskript über die lange URL einsetzen können.

Erstelle ein zusätzliches Content-Verzeichnis (z.B. "inside/") parallel (!) zum Verzeichnis "content/".

Erstelle eine Kopie von "index.php" und "location.inc" in das selbe Verzeichnis ("Homepage-Root") und nenne sie z.B. "inside_index.php" und "inside_location.inc". Passe die neuen Dateien inside_location.inc und inside_index.php entsprechend an:

  • inside_index.php, Zeile 4: require_once("location.inc"); zu require_once("inside_location.inc");
  • inside_location.inc, Zeile 11: "content"=>"content/", zu "content"=>"inside/",

Ergänze die .htaccess-Datei (die hier im Beispiel ebenfalls im Homepage-Root liegen muss) um einen Eintrag zur Passwort-Abfrage für die Datei "inside_index.php". Zum Beispiel:

<Files inside_index.php>
Zutrittsbeschränkungen (siehe oben)
</Files>

Hinterlege deine geschützen Inhalte im Verzeichnis "inside/".

Mit dieser Methode vermeidest du Quer-Includes oder Verzeichnis-Traversing. Falls die mit der Vorlage mit gelieferte .htaccess-Datei nicht verändert wurde, sind inc-Dateien automatisch vor direkten Zugriffen geschützt.

aus: dlrg.internet, Autor Stephan Schmid

Beispiel, wie dann das Homepage-Root aussieht:

Homepage-Root
|- content/ (hier liegen die öffentlichen inc-Dateien)
|- inside/ (hier liegen die geschützten inc-Dateien)
|- .htaccess
|- index.php
|- inside_index.php
|- inside_location.inc
|- location.inc
...
  • Keine Stichwörter