Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

Passwortschutz mit Perl

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Viele Webmaster sind auf der Suche nach einer effizienten Möglichkeit, manche Inhalte nur bestimmten Personen zugänglich zu machen. Aktuell wird dieses Thema z.B. dann, wenn es darum geht, Inhalte zu verkaufen.

Optimalerweise sollte der Benutzer sich dann mit einem Passwort identifizieren, um Zugang zu den gewünschten Seiten zu erhalten. Um eine solche Idee zu verwirklichen, gibt es mehrere Ansätze.

So gibt es z.B. die Möglichkeit, seine Seiten mit JavaScripts zu schützen. Viele Webmaster lehnen JavaScript aber aus Prinzip ab, und sei es nur, weil viele Surfer aus Sicherheitserwägungen das Scripting deaktivieren. Oder die .htaccess-Lösung: im zu schützenden Verzeichnis wird eine bestimmte Datei angelegt, in der das Passwort für den Zugriff steht.

Wem das alles zu kompliziert ist oder wer z.B. direkt mit einer User-Datenbank arbeiten will, für den bietet sich die Überprüfung der Benutzer mit Perl an. Das Konzept ist einfach: ein Benutzer authentifiziert sich zunächst über ein Formular, dann wird er zum entsprechenden Artikel weitergeleitet. Wichtig ist dabei, dass das Script selbst den Artikel ausliefern muss.

Die Vorteile einer Perl-Lösung gegenüber der .htaccess? Mit Perl ist es z.B. recht einfach möglich, komplexe logische Bäume zu verwalten. Beispiel: "Benutzer A hat Zugriff auf Artikel B, aber nur, wenn er vorher Artikel C gelesen hat und sich beim Formular 1 als User angemeldet hat".

Ein (sehr einfach gestricktes) Beispiel für ein einfaches Script:

#!/usr/local/bin/perl -w

use strict;

use CGI;

my $cgi = new CGI;

my $username = $cgi->param("username");
my $pw = $cgi->param("pw");

# User-Hash auslesen
my %user = %{&UserDB};

print "Content-type: text/html\n\n";

# User überprüfen
unless ($user{$username} && $user{$username} eq $pw)
{
    print "Kein Zugang!";
    exit;
}

# Welchen Artikel will der Benutzer?
my $artikel = $cgi->param("artikel");

# Artikel auslesen ... und ausgeben
my $artikel_text = &GetArtikel($artikel);
print $artikel;

exit;

sub UsersDB
{
    my %users = (    
    UserA => "pw1",
    UserB => "pw2",
    );
    
    return \%users;
}

sub GetArtikel
{
    my $artikel = shift;
    
    # Hier: Artikel sind im Code eingebettet
    # Es wäre aber auch möglich, an dieser Stelle eine Datei
    # einzulesen
    
    if ($artikel eq "art1")
    {
        my $text = qq(
            Das hier ist Artikel 1!
        );
        
        return $text;
    }
    else
    {
        return "Artikel nicht vorhanden";
    }
}


Das Authentifizierungs-Formular könnte dann diesen Code haben:

<form action="/cgi-bin/artikel.pl" method="post">
    Benutzername: <input type="text" name="username"><br>
    Passwort: <input type="text" name="pw"><br>
    Artikel: <select name="artikel">
    <option value="art1" SELECTED>Artikel 1</option>
    <option value="art2">Artikel 2</option>
</select>    
</form>



Autor: Alexander Dilthey | Erstmalig veröffentlicht: 07.02.2001 | Einen Artikel schreiben?

 

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.