Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Webbrowser
3 JavaScript einbauen
4 Programmieren mit JavaScript
5 Datum
6 Zufall
7 Browserinformationen
8 Fenster
9 Formulare
10 Frames und Iframes
11 Grafiken
12 Cookies
13 Objekte und Arrays
14 Ereignisbehandlung
15 Fehlerbehandlung
16 DOM
17 DHTML und CSS
18 AJAX
19 XML
20 Web Services
21 AJAX-Frameworks
22 Plugins
23 Multimedia
24 Java
25 Serverseitige Technologien
26 JavaScript goes .NET
27 Code schützen
28 Top Secret: Passwortschutz
29 Signierte Skripte
30 JavaScript und Sicherheit
31 Navigation
32 Warenkorb
33 JavaScript-Bibliotheken
34 Referenz
35 Quellen im Web
36 Die Zukunft von JavaScript
Index
Download: - ZIP, ca. 9,2 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / JavaScript und AJAX | vor >>
JavaScript und AJAX von Christian Wenz Das umfassende Handbuch
JavaScript und AJAX 839 S., mit DVD, 39,90 Euro Galileo Computing ISBN 3-89842-859-1 |
| Kapitel 28 Top Secret: Passwortschutz
|  | 28.1 URL aus Passwort
|  |  | 28.1.1 Passwort == URL
|  |  | 28.1.2 Passwort » URL
|  |  | 28.1.3 f : Passwort ® URL
|  | 28.2 Seiten mit Cookies schützen
|  |  | 28.2.1 Passwort im Quelltext
|  |  | 28.2.2 Mit Java
|  | 28.3 Ein Blick über den Tellerrand
|  |  | 28.3.1 PHP
|  |  | 28.3.2 .htaccess
## 28.3 Ein Blick über den Tellerrand 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. ### 28.3.1 PHP 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>
### 28.3.2 .htaccess 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:
| Das aktuelle Verzeichnis ist geschützt.
| Es dürfen nur autorisierte Benutzer auf Dateien in diesem Verzeichnis zugreifen (require valid-user).
| Der Name des Bereichs, der auch in den Dialogfenstern zur Passworteingabe steht, ist »Top Secret« (AuthName Top Secret).
| 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.1 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 | <top> | vor >>
Zum Katalog
JavaScript und AJAX bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| JavaScript und AJAX - Das Video-Training
| Webseiten programmieren und gestalten
| XHTML, HTML und CSS
| CSS-Praxis
| AJAX
| PHP 5 und MySQL 5
| TYPO3 4.0
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

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