[GastForen Archiv Perl und CGI Einloggen auf (s)HTML-Seite

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Einloggen auf (s)HTML-Seite

SabineP
Beiträge gesamt: 7586

1. Dez 2002, 00:07
Beitrag # 16 von 40
Beitrag ID: #18135
Bewertung:
(3800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@andreas

Normalerweise ist die Endung egal *.pl oder *.cgi
Das hängt von den Einstellungen in der httpd.conf des Apache ab.
Probiers einfach aus.

@Ollli

Username und Passwort werden mit "Post" gesendet, deshalb sieht man nichts davon in der Adresszeile.
Das Passwort wird unverschlüsselt gesendet. Wenn jemand den Netzwerkverkehr lesen kann (Sniffer), dann kann er das Passwort im Klartext sehen.
Normalerweise ist das Passwort mit Base64 verschlüsselt, wenn man das normale Browser-Pop-Up-Fenster für den Login verwendet.

Diese HTML-Datei wird tatsächlich im Browser-Cache gespeichert:
<HTML><META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'></HTML>

Also wäre es besser noch zwei Meta-Tags einzufügen, damit die Seite weder im Browser-Cache noch in Proxys gespeichert wird:

#!/usr/bin/perl
use CGI qw(:standard);
$schutzurl = "sub.domain.de/members"; # URL des passwortgeschützten Verzeichnis
$query = new CGI;
$username = $query->param('username');
$password = $query->param('password');
&login if ($username && $password && $ENV{'REQUEST_METHOD'} eq "POST");
sub login{
print "Content-type: text/html\n\n";
print "<HTML><META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'>\n";
print "<meta http-equiv='cache-control' content='no-cache'>\n";
print "<meta http-equiv='pragma' content='no-cache'></HTML>\n";
exit;
}

Ich weiß, das ist alles nicht 100% sicher, aber ich denke halt, daß die Sicherheit für die Abi-Seite von Andreas ausreichend ist.

Den Cache hatte ich ganz vergessen, Ollli danke für den Tip.

Grüße von Sabine


als Antwort auf: [#16436]
(Dieser Beitrag wurde von SabineP am 1. Dez 2002, 01:04 geändert)
X

Einloggen auf (s)HTML-Seite

Hanü
Beiträge gesamt: 219

1. Dez 2002, 00:47
Beitrag # 17 von 40
Beitrag ID: #18137
Bewertung:
(3800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Muss Ollli Recht geben, das mit dem Cache hab ich mir auch kurz überlegt, bin dem aber nicht weiter nachgegangen.

Aber ich stimme dir auch zu, Sabine, für meine Zwecke ist das so ausreichen, mit den 2 zusätzlichen Metatags...

GrEeZ Hanü


als Antwort auf: [#16436]
(Dieser Beitrag wurde von Hanü am 27. Apr 2004, 05:08 geändert)

Einloggen auf (s)HTML-Seite

Ollli
Beiträge gesamt: 458

1. Dez 2002, 11:04
Beitrag # 18 von 40
Beitrag ID: #18146
Bewertung:
(3800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> <META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'>

ich meinte eher diese Zeile mit dem Passwort in der Adresszeile, die wird doch automatisch in die Adresszeile des Browsers geschrieben, oder?
Also jedenfalls habe ich das refresh-tag so in erinnerung ;-)

Und wenn das nicht der Fall ist, dann wäre eine Erklärung für mich sehr nett, damit ich das auch richtig verstehe ;-)

Ollli


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Ollli
Beiträge gesamt: 458

1. Dez 2002, 11:17
Beitrag # 19 von 40
Beitrag ID: #18147
Bewertung:
(3800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Achso, da habe ich doch noch ein Script in Erinnerung, was ich mal geschrieben habe, womit die User sich ihr Passwort selber ändern können.
Aber achtet lieber nicht so auf den Code, der stammt noch aus meinen Anfängerjahren ;-)

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

$passwd_pfad = "/....../ollli/.htpasswd";
$passwdbackup = "/......./ollli/.htpass2";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;
$FORM{$name} = $value;
}

$passold = $FORM{'passold'};
$pass1 = $FORM{'pass1'};
$pass2 = $FORM{'pass2'};
$name = $FORM{'name'};
$i = 0;


&candc;

sub austausch()
{
open(PWL, "$passwd_pfad") || &error("Kann Passwort-Datei nicht öffnen: $!");
@pwl = <PWL>;
close(PWL) || &error("Kann Passwort-Datei nicht schließen: $!");
open(BKP,">$passwdbackup") || &error("Kann Sicherungsdatei nicht öffnen: $!");
open(PWL,">$passwd_pfad") || &error("Kann PWL-DAT nicht öffnen: $!");
foreach $line (@pwl)
{
print BKP $line;
($user, $pw) = split(/:/,$line);
chomp($pw);
if($user eq $name && $pw eq $cpassold)
{
print PWL "$name:$cpassnew\n";
}
else
{
print PWL $line;
}
}
print "Content-type: text/html\n\n";
print "<html><head><title>Alles glatt verlaufen</title></head>\n";
print "<body>Das Passwort wurde geändert!</body>";
print "\n</html>";
}

sub candc()
{
$vorhanden = "nein";
$cpassold = crypt($passold, "YL");
if($pass1 ne $pass2)
{
&error("Die beiden neuen Passw&ouml;rter stimmen nicht &uuml;berein, bitte korrigieren Sie");
}
else
{
open(PWL,"$passwd_pfad") || &error("Kann PWL-DAT nicht öffnen: $!");
@pwlist = <PWL>;
close(PWL);
foreach $pl (@pwlist)
{
($user, $pw) = split(/:/, $pl);
chomp($pw);
if(($user eq $name) && ($pw eq $cpassold))
{
$cpassnew = crypt($pass1, "YL");
$vorhanden = "ja";
}
}
if($vorhanden eq "ja")
{
&austausch;
}
else
{
&error("Benutzername und Kennwort passen nicht zueinander, bitte beide Eingaben &uuml;berpr&uuml;fen!");
}
}
}

sub error()
{
print "Content-type: text/html\n\n";
$message = $_[0];
if($message =~ /Kann/)
{
print $message;
}
else
{
print ("
<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html;charset=iso-8859-1\">
<title>Passwort&auml;nderung</title>
</head>
<body bgcolor=\"#ffffff\">
<form name=\"formular\" action=\"/cgi-bin/htpwch.pl\" method=\"post\">
<p>$message<br>
<br>
Benutzername: <input type=\"text\" name=\"name\" size=\"24\" value=\"$name\"><br>Altes Passwort: <input type=\"password\" name=\"passold\" size=\"24\" value=\"\"><br>
Neues Passwort: <input type=\"password\" name=\"pass1\" size=\"24\" value=\"\"><br>
Neues Passwort wiederholen: <input type=\"password\" name=\"pass2\" size=\"24\" value=\"\"><br>
<br>
<input type=\"submit\"> <input type=\"reset\"></p>
</form>
<p></p>
</body>
</html>

")

}
}

-------------------

Ich hoffe, es hilft wenigstens etwas.

Ollli


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

SabineP
Beiträge gesamt: 7586

1. Dez 2002, 14:44
Beitrag # 20 von 40
Beitrag ID: #18171
Bewertung:
(3800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ollli, Username und Passwort erscheinen nicht in der Adresszeile, getestet mit Netscape 4, IE 4 und Phoenix.
Frag mich nicht warum, ich wundere mich ja selbst, daß es so geht.

Hier ein Link zum Testen:

http://cgi.gmxhome.de/test/loginseite.html

Username/Passwort: tester

Die "Schutzurl" steht ohne Slash am Ende in der login.cgi
$schutzurl = "cgi.gmxhome.de/members";

Mit Slash am Ende klappts nicht. Dann stehen Username und Passwort in der Adresszeile.

Grüße von Sabine


als Antwort auf: [#16436]
(Dieser Beitrag wurde von SabineP am 1. Dez 2002, 14:44 geändert)

Einloggen auf (s)HTML-Seite

Anonym
Beiträge gesamt: 22827

1. Dez 2002, 16:39
Beitrag # 21 von 40
Beitrag ID: #18176
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das sind also die Wunder der Technik, wo wieder kein weiß warum sie existieren ;-)

ich habe dann mal noch eine Frage:
hast du einen account bei gmx oder wieso nimmst cgi.gmxhome.de???
gmxhome.de ist auf GMX geschrieben, doch so wie du das verwendest sieht das nicht nach einem account aus, oder heißt dein account "test"???

Ollli


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

SabineP
Beiträge gesamt: 7586

1. Dez 2002, 16:55
Beitrag # 22 von 40
Beitrag ID: #18177
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ollli,

bei gmx gibts jetzt kostenlose Subdomains mit 10 MB Speicherplatz.
Ich hab mir cgi.gmxhome.de angemeldet.
Der Name "cgi" war noch frei :-)

test ist nur ein Unterverzeichnis.

Grüße von Sabine


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Hanü
Beiträge gesamt: 219

1. Dez 2002, 18:44
Beitrag # 23 von 40
Beitrag ID: #18184
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@Sabine
Also im NN7 und IE6 steht die URL auch ohne die Zugangsdaten. Vielleicht hat es was damit zu tun, dass es sich um einen Ordner und keine bestimmte Datei handelt. Müsste man mal mit einer Datei als Ziel ausprobieren...

@Ollli
Aus den Anfangsjahren *g* - da warst du aber schon fortgeschrittener Anfänger... naja, immerhin versteh ich das Prinzip deines "Passwort ändern" Scriptes, des is schon mal was... Danke trotzdem, ich befass mich mal näher damit und versuch es für meine Zwecke anzupassen...

Andreas


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Ollli
Beiträge gesamt: 458

1. Dez 2002, 19:13
Beitrag # 24 von 40
Beitrag ID: #18185
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
--- QUOTE ---
@Sabine
Also im NN7 und IE6 steht die URL auch ohne die Zugangsdaten. Vielleicht hat es was damit zu tun, dass es sich um einen Ordner und keine bestimmte Datei handelt. Müsste man mal mit einer Datei als Ziel ausprobieren...
--- QUOTE END ---

Ich glaube deswegen funktioniert es gerade, denn wenn man einen Slash setzt, dann steht es drin (laut Sabine). Es ist ja eigentlich ein Verzeichnis-Schutz und ein Verzeichnis wird immer mit Slash hinten angegeben. Naja und wie der Zufall so will, wird somit das PW nur angezeigt, wenn es sich auch in der Adressleiste um ein Verzeichnis handelt. Das wäre jetzt ein Verdacht von mir bzw. eine mögliche Lösung.

BTW: im Opera 6.01 sieht man auch kein PW und kein Username.

Noch einen schönen ersten Advent!
Ollli


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Hanü
Beiträge gesamt: 219

10. Dez 2002, 02:19
Beitrag # 25 von 40
Beitrag ID: #18959
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hab nochmal ne Frage zu dem Refresh:

<META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'>

Da steht zwar Content=0, trotzdem kommt (bei mir zumindest) erst noch eine weiße(leere) Seite für ein paar Sekunden, wenn man sich anmelden will. Ist das bei euch auch so?

Wenn sich das nicht verhindern lässt, kann man dann - "um die Wartezeit zu verkürzen" - einen kleinen Text ausgeben? Z.B. 'Einen Augenblick bitte...' oder so... und vielleicht in Bildschirmmitte :)

Gruß Andreas


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

SabineP
Beiträge gesamt: 7586

10. Dez 2002, 12:58
Beitrag # 26 von 40
Beitrag ID: #19008
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hanü,

Du kannst den HTML-Code der Seite natürlich beliebig erweitern

print "<HTML><HEAD><META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'>\n";
print "<meta http-equiv='cache-control' content='no-cache'>\n";
print "<meta http-equiv='pragma' content='no-cache'></HEAD>\n";
print q~
<body>
Hier kannst Du beliebigen HTML-Code einfügen.
</body>
~;
print "</HTML>\n";

Grüße von Sabine


[Netscape 4 ist mein Freund]


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Hanü
Beiträge gesamt: 219

10. Dez 2002, 23:10
Beitrag # 27 von 40
Beitrag ID: #19063
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, hab versucht, das anzupassen. Jetzt geht's aber nicht mehr :(

#!/usr/bin/perl
use CGI qw(:standard);
$schutzurl = "sub.domain.de/login"; # URL des passwortgeschützten Verzeichnis
$query = new CGI;
$username = $query->param('username');
$password = $query->param('password');
&login if ($username && $password && $ENV{'REQUEST_METHOD'} eq "POST");
sub login{
print "Content-type: text/html;charset=iso-8859-1\n\n";
print "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n";
print qq|
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>SUB.Domain.de</title>
<meta http-equiv=refresh content="0;URL=http://$username:$password\@$schutzurl">
<meta name="robots" content="noindex, nofollow, noarchiv">
<meta http-equiv="cache-control" content="no-cache">
<meta name="pragma" content="no-cache">
<link href="../domain.css" rel="stylesheet">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr><td align="center" valign="middle">
<p><b>Einen Augenblick, bitte...</b></p>
</td></tr></table></body></html>
|;
exit;
}


als Antwort auf: [#16436]
(Dieser Beitrag wurde von Hanü am 27. Apr 2004, 04:47 geändert)

Einloggen auf (s)HTML-Seite

SabineP
Beiträge gesamt: 7586

11. Dez 2002, 00:00
Beitrag # 28 von 40
Beitrag ID: #19068
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hanü, das dürfte ausreichen:

#!/usr/bin/perl
use CGI qw(:standard);
$schutzurl = "abi.hanue.de/login"; # URL des passwortgeschützten Verzeichnis
$query = new CGI;
$username = $query->param('username');
$password = $query->param('password');
&login if ($username && $password && $ENV{'REQUEST_METHOD'} eq "POST");
sub login{
print "Content-type: text/html\n\n";
print "<HTML><META HTTP-EQUIV=Refresh CONTENT='0;URL=http://$username:$password\@$schutzurl'>\n";
print "<meta http-equiv='cache-control' content='no-cache'>\n";
print "<meta http-equiv='pragma' content='no-cache'></HEAD>\n";
print q~
<body>
<p align="center"><b>Einen Augenblick, bitte...</b></p>
</body>
~;
print "</HTML>\n";
exit;
}


als Antwort auf: [#16436]

Einloggen auf (s)HTML-Seite

Hanü
Beiträge gesamt: 219

11. Dez 2002, 14:06
Beitrag # 29 von 40
Beitrag ID: #19125
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Script hat wegen dem <titel> und <link rel> nimma richtig funktioniert. Ich weiß nur nicht, welshalb... Naja, den Link zum CSS brauch ich nicht wirklich, aber einen Seitentitel hätt ich da schon gern, auch wenn man diese Seite nur ne Sekunde zu sehen kriegt...


als Antwort auf: [#16436]
(Dieser Beitrag wurde von Hanü am 9. Feb 2004, 00:21 geändert)

Einloggen auf (s)HTML-Seite

Ollli
Beiträge gesamt: 458

11. Dez 2002, 19:49
Beitrag # 30 von 40
Beitrag ID: #19163
Bewertung:
(3786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Warten entsteht durch das Laden der anderen Seite, denn nicht alle haben DSL (so wie ich jetzt *riesigfreu*) und von daher ist die Seite eben noch bissl zu sehen, was auch das Sicherheitsrisiko wieder erhöht, denn ein schneller kann hier noch die Login-Daten lesen, doch meist sitzt ja der eingeloggte selbst vorm Moni bzw. der, dem die Login-Daten nicht gehören muss ja irgendwie anders an diese herangekommen sein ;-)

Ollli


als Antwort auf: [#16436]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!