Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 28 Top Secret: Passwortschutz
  gp 28.1 URL aus Passwort
    gp 28.1.1 Passwort == URL
    gp 28.1.2 Passwort » URL
    gp 28.1.3 f : Passwort ® URL
  gp 28.2 Seiten mit Cookies schützen
    gp 28.2.1 Passwort im Quelltext
    gp 28.2.2 Mit Java
  gp 28.3 Ein Blick über den Tellerrand
    gp 28.3.1 PHP
    gp 28.3.2 .htaccess


Galileo Computing

28.3 Ein Blick über den Tellerrand  downtop

Wenn serverseitige Mittel zur Verfügung stehen, ist das Problem mit den geschützten Seiten schon etwas anderes; auf der Serverseite lässt sich der Zugriffsschutz viel einfacher und auch besser realisieren.

Wir werden im Folgenden Lösungen für die Skriptsprache PHP sowie eine Lösung für den Apache Web Server betrachten. Damit müssten Sie auf fast jedem besseren Server einen einfachen Zugriffsschutz realisieren können. Wenn Ihr Hoster keine Möglichkeit bietet, serverseitige Skriptsprachen einzusetzen, können Sie diesen Abschnitt getrost überspringen.


Galileo Computing

28.3.1 PHP  downtop

PHP bietet ein so genanntes eingebautes Session-Management. Damit ist es möglich, einen Benutzer auch während mehrerer Sitzungen zu behalten. Rein technisch geschieht das so, dass bei jedem Seitenaufruf in der URL eine eindeutige, standardmäßig 32 Zeichen lange Session-ID übergeben wird, die den aktuellen Benutzer identifiziert. Wenn der Client Cookies unterstützt, umso besser: Dann wird die Session-ID in einem Cookie übergeben.

Auf der Serverseite können Sie abspeichern, ob sich der Benutzer korrekt eingeloggt hat oder nicht. Der Benutzer selbst sieht nur die Session-ID, aber nicht die entsprechende Variable. Er kann es also nicht mit ein wenig Aufwand erreichen, dass er die Variable »eingeloggt ja/nein« von Hand setzen kann, wie das bei der Cookie-Lösung in Abschnitt 28.2 noch der Fall war.

Die Loginmaske sieht folgendermaßen aus: Der Benutzer muss ein Passwort in das Formular eingeben, das dann auf der Serverseite mit dem korrekten Passwort verglichen wird. Da der serverseitige Code nicht an den Benutzer übermittelt wird, können Sie hier das Passwort direkt hineinschreiben.

Wenn das Passwort korrekt ist, wird in der aktuellen Session (Sitzung) abgespeichert, dass der Loginversuch erfolgreich war.

<?php
session_start();
if (isset($_POST['Submit']) &&
    $_POST['Submit'] == 'Login') {
   if (isset($_POST['pass']) &&
      $_POST['pass'] == 'geheim') {
      $_SESSION['Login'] = 'ok';
   }
   header("Location: geheim.php?" . session_name()
                                  . "=" . session_id());
}
?>
<html>
<head>
<title>Top Secret</title>
</head>
<body>
<h1>Passwortabfrage</h1>
<form method="post">
   <input type="password" name="pass" />
   <input type="submit" value="Login" name="Submit" />
</form>
</body>
</html>

Auf den Unterseiten müssen Sie nur noch sicherstellen, dass Benutzer, die noch nicht eingeloggt sind, wieder hinausgeworfen werden.

<?php
session_start();
if (!isset($_SESSION['Login']) ||
    $_SESSION['Login'] != 'ok') {
   header('Location: login.php');
}
?>
<html>
<head>
<title>Top Secret</title>
</head>
<body>
Geheime Informationen ...
</body>
</html>

Galileo Computing

28.3.2 .htaccess  toptop

Der am weitesten verbreitete Webserver, der Apache, sucht unter UNIX und Linux in jedem Verzeichnis nach einer Datei namens .htaccess (unter Windows ist der Dateiname nicht gültig, dort müssen Sie einen anderen Dateinamen konfigurieren und einsetzen). In dieser Datei kann der Webmaster Zugriffsbeschränkungen für eine Website einrichten.

Eine solche Datei sieht folgendermaßen aus:

AuthUserFile /usr/home/apache/www/htaccess/.htpasswd
AuthName Top Secret
<Limit GET POST>
require valid-user
</Limit>

Damit wird Folgendes festgelegt:

gp  Das aktuelle Verzeichnis ist geschützt.
gp  Es dürfen nur autorisierte Benutzer auf Dateien in diesem Verzeichnis zugreifen (require valid-user).
gp  Der Name des Bereichs, der auch in den Dialogfenstern zur Passworteingabe steht, ist »Top Secret« (AuthName Top Secret).
gp  Die autorisierten Benutzer und deren Passwörter (natürlich verschlüsselt) stehen in der Datei /usr/home/www/htaccess/.htpasswd.

Nun fehlt Ihnen nur noch das Wissen, wie Sie die Benutzernamen und Passwörter in die Datei .htpasswd schreiben können. Auf Konsolenebene geht das ganz einfach:

htpasswd .htpasswd Benutzername

So können Sie einen neuen Benutzer anlegen oder einen bestehenden Nutzer modifizieren. Die Informationen werden dann zeilenweise in die Datei .htpasswd geschrieben. Die Passwörter werden dabei verschlüsselt, so dass auch das Auslesen der Datei noch keinen Zugriff auf den geschützten Bereich ermöglicht.




1  Beim erstmaligen Erstellen der Passwortdatei müssen Sie noch den Schalter –c angeben, damit die Datei erzeugt wird.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de