Hi Gonzo!
http://www.server.de/cgi-bin/script.pl?IrgendeinUserDenEsGibt
eingeben und schon habichs?
Ne, ne, so nicht.
Also etwas ausführlicher:
Um sicherzustellen, dass das Script nur von einem authorisierten Besucher ausgeführt wird, legst Du den Aufruf (!) des Scripts in eine HTML-Datei, die in einem per .htaccess geschützten Verzeichnis liegt. Im Script checkst Du dann, ob in HTTP_REFERER die URL der HTML-Seite steht. Ist das nicht der Fall, dann hat jemand das Script über einen anderen Weg aufgerufen und ist also nicht authorisiert (nachzulesen in http://www.teamone.de/selfaktuell/artikel/schroepl02.htm#a2).
Wenn Du nun im Script auch noch den Wert REMOTE_USER benötigst (der ist nämlich nicht mehr gesetzt, wenn Du das geschütze Verzeichnis verlässt), geht das mit einem Trick. Dazu brauchst Du aber SSI (<../../tgbe.htm>).
Beispiel für so eine HTML-Datei:
<HTML>
<HEAD>
<META http-equiv="expires" content="0">
<!--Mit der folgenden Zeile leitest Du sofort an Dein zu schützendes Script script.pl weiter-->
<!--Der Server ersetzt dabei <!--#echo var="REMOTE_USER"--> durch den entsprechenden Wert -->
<META http-equiv="refresh" content="0;URL=http://www.server.de/cgi-bin/script.pl?<!--#echo var="REMOTE_USER"-->">
</HEAD>
<BODY>
<!--Falls der Browser die automatische Weiterleitung nicht unterstützt, solltest Du noch-->
<!--einen anklickbaren Link anbieten-->
<A HREF="http://www.server.de/cgi-bin/script.p?<!--#echo var="REMOTE_USER"-->">Moment bitte, es geht gleich weiter zur Anmeldung.</A>
</BODY>
</HTML>
Nun kannst Du in Deinem Script $ENV{'QUERY_STRING'} auswerten, denn dort steht nun der Inhalt von REMOTE_USER drin.
Gruß Frank