#!/usr/bin/perl -w use strict; # Strikte Prüfung ein my @Passwords = ("delta","Indigo","fSD8rsG");# Passwortliste my $Input; # Deklaration der Variable print "Content-type: text/html\n\n"; # HTTP-Header read(STDIN, $Input, $ENV{'CONTENT_LENGTH'}); # Standard-Eingabe auslesen unless($Input =~ /geheim/) { # Wenn 'geheim' nicht vorkommt print <<" EOFHTML1"; <HTML><HEAD><TITLE>Passwort</TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"><H1>Passwort</H1> <FORM ACTION="/cgi-bin/passwd.cgi" METHOD="POST"> <INPUT TYPE="password" NAME="geheim" MAXLENGTH=15 SIZE=15> <INPUT TYPE="submit" VALUE="Absenden"> <INPUT TYPE="reset" VALUE="Delete"> </FORM></BODY></HTML> EOFHTML1 exit(0); # Und Tschüss } else { # wenn 'geheim' vorkommt my $Erfolg; print "<HTML><HEAD><TITLE>Passwort</TITLE></HEAD>\n"; print qq[<BODY BGCOLOR="#FFFFFF"><H1>Passwort</H1>\n]; my ($name, $value) = split(/=/, $Input); # Teile Input in Key und Value for(@Passwords) { # Passwortliste abklappern if ($value eq $_) { # Wenn Wert gleich Passwort $Erfolg = "ja"; last; # for-Schleife abbrechen } else { # Wenn Wert ungleich Passwort $Erfolg = "nein"; } } if ($Erfolg eq "ja") { print "<B>Eingeloggt!</B>\n"; # Hier kann z.B. ein Verweis zu einer geheimen URL folgen } else { print "<B>Sorry, Sie haben hier <BLINK>KEINEN</BLINK> Zutritt oder", " Ihr Passwort falsch eingegeben!</B>\n"; } print "</BODY></HTML>\n"; exit(0); }