Apache Passwortlänge
piet
- apache
- perl
- sicherheit
0 dedlfix0 Google weiß alles2 Eine ganz generelle Bitte
Google weiß alles
Hallo,
mit entsetzen habe ich festgestellt, das es beim login am Apache Webserver zu Problemen mit Passworten gibt ... lange Passworte werden auch teilweise akzeptiert.
die genaue Länge habe ich noch nicht herausgefunden.
d.h. kurze Passworte z.B. 6 Zeichen müssen komplett richtig sein (Normal) lange Passworte ca. ab 15 Zeichen werden schon nach 12 Zeichen akzeptiert. Das Passwort muss nicht komplett eingegeben werden.
Wo finde ich in der Apachekonfiguration, die Länge der Passworte die überprüft werden.
Gruß
piet
Tach!
Wo finde ich in der Apachekonfiguration, die Länge der Passworte die überprüft werden.
Die Dokumentation ist immer ein guter Anlaufpunkt: htpasswd - Manage user files for basic authentication. Das kommt auch (bei mir) als erstes Ergebnis beim Suchen nach "apache password length"
dedlfix.
Wo finde ich in der Apachekonfiguration die Länge der Passworte, die überprüft werden.
Die Frage ist, wie denn die Passwort-Hashes erstellt werden. Offenbar wird htpasswd -d
verwendet, wofür das Manual eine maximale Länge von 8 Zeichen angibt. Der Rest wird vor dem Hashen mit crypt (sha1) abgeschnitten, was zu dem von Dir beschriebenen Verhalten passt.
Das dieses Verfahren unsicher ist sagt das Handbuch explizit aus.
Eine Bitte noch:
Es ist eine gute Idee bei Fragen zu Software stets folgendes anzugeben:
Kann ja gut sein, dass Du unter Windows irgendwelchen XAMPP-Mist von einer Zeitschriften-CD aus dem Jahr 2001 laufen hast...
Obige Angaben sparen Rückfragen und damit auch Deine Zeit.
Hallo,
nochmals mehr Infos
SUSE 13.2 Apache 2.4.6
basic authentication
Das Passwort wird mittels Perl über die Funktion crypt erstellt.
Aktuell weiß ich gar nicht, in welchem Konfigurationfile des Apache steht, welche Verschlüsselung ich benutze (auf jedenfall nur 8 Zeichen)
Auch bin ich durch diese Suche auf "basic authentication" gestossen (das ich ebenfalls benutze), das mir das Passwort unverschlüsselt überträgt. Ich nutze kein https bzw. vpn oder so. Was haltet Ihr von "basic digest" ? Wenn ich schon mal beim ändern bin.
Nochmals ... es ist nichts lebensnotwendiges am Server, trotzdem möchte ich den login optimal gestalten, trotz "greenhorn" ;-)
Bitte kurze Hinweise/Tips, nicht nur auf die Beschreibung hinweisen. Das war meine erste Anlaufstelle, nur man muss erst mal wissen nach was man suchen muß/soll.
Danke
Hi
Aktuell weiß ich gar nicht, in welchem Konfigurationfile des Apache steht, welche Verschlüsselung ich benutze (auf jedenfall nur 8 Zeichen)
IIRC ergibt sich das aus dem verschlüsselten Passwort. Da wird am Anfang ein Erkennungsstring drangeklebt.
cu,
Andreas a/k/a MudGuard
Hallo,
Hi
Aktuell weiß ich gar nicht, in welchem Konfigurationfile des Apache steht, welche Verschlüsselung ich benutze (auf jedenfall nur 8 Zeichen)
IIRC ergibt sich das aus dem verschlüsselten Passwort. Da wird am Anfang ein Erkennungsstring drangeklebt.
cu,
Andreas a/k/a MudGuard
d.h. wenn ich mein Passwort mit md5 verschlüssele weiß apache wie er das passwort bearbeiten/abfragen soll .... ist das so richtig ?
das heißt auch, ich könnte zum testen einfach ein passwort so und ein anderes anders verschlüsseln ... ??
... und was sollte ich bevorzugt verwenden, zum verschlüsseln ?
Danke
Hi,
d.h. wenn ich mein Passwort mit md5 verschlüssele
Das scheitert schon daran, daß md5 keine Verschlüsselung ist, sondern ein Hash.
cu,
Andreas a/k/a MudGuard
Hallo,
Hi,
d.h. wenn ich mein Passwort mit md5 verschlüssele
Das scheitert schon daran, daß md5 keine Verschlüsselung ist, sondern ein Hash.
cu,
Andreas a/k/a MudGuard
... sorry ... ich dummerchen ... Linkbeschreibung steht hier als Verschlüsselung. Man kann keinen vertrauen.
.... könnte nicht jemand anders als Andreas a/k/a MudGuard antworten. Ich würde gerne weiter kommen und nicht nur arrogant korrigiert werden.
Danke
... sorry ... ich dummerchen ... Linkbeschreibung steht hier als Verschlüsselung.
Tach!
.... könnte nicht jemand anders als Andreas a/k/a MudGuard antworten. Ich würde gerne weiter kommen und nicht nur arrogant korrigiert werden.
Den Link zum Handbuch habe ich schon vor zwei Tagen gepostet. Da stehen alle Möglichkeiten der Passworterzeugung drin.
Es ist empfehlenswert, die vom System selbst bereitgestellten Mittel zu verwenden und nur wenn man die kennt, Hilfssysteme von Dritten dafür einzusetzen, damit man deren Ergebnisse mit dem Original vergleichen kann.
dedlfix.
Tach,
SUSE 13.2 Apache 2.4.6
Das Passwort wird mittels Perl über die Funktion crypt erstellt.
Aktuell weiß ich gar nicht, in welchem Konfigurationfile des Apache steht, welche Verschlüsselung ich benutze (auf jedenfall nur 8 Zeichen)
das ist ein Hash und keine Verschlüsselung und der, den du nutzt, heißt crypt und ist eher veraltet. Dein Apache unterstützt bcrypt als momentan empfehlenswerteste Variante.
Auch bin ich durch diese Suche auf "basic authentication" gestossen (das ich ebenfalls benutze), das mir das Passwort unverschlüsselt überträgt. Ich nutze kein https bzw. vpn oder so. Was haltet Ihr von "basic digest" ? Wenn ich schon mal beim ändern bin.
Ich halte nicht viel davon unverschlüsselte Dienste anzubieten (bei Basic Digest wird zwar das Passwort nicht im Klartext übertragen, aber alles andere schon), TLS ist keine nennenswerte Last für den Server und die Zertifikate sind auch kostenlos zu haben: https://wiki.selfhtml.org/wiki/TLS#Certificate_Authorities
mfg
Woodfighter
Tach, das ist ein Hash und keine Verschlüsselung und der, den du nutzt, heißt crypt und ist eher veraltet. Dein Apache unterstützt bcrypt als momentan empfehlenswerteste Variante.
... das ist doch mal ne Aussage mit der man was anfangen kann. zwei Fragen
Auch bin ich durch diese Suche auf "basic authentication" gestossen (das ich ebenfalls benutze), das mir das Passwort unverschlüsselt überträgt. Ich nutze kein https bzw. vpn oder so. Was haltet Ihr von "basic digest" ? Wenn ich schon mal beim ändern bin.
Ich halte nicht viel davon unverschlüsselte Dienste anzubieten (bei Basic Digest wird zwar das Passwort nicht im Klartext übertragen, aber alles andere schon), TLS ist keine nennenswerte Last für den Server und die Zertifikate sind auch kostenlos zu haben: https://wiki.selfhtml.org/wiki/TLS#Certificate_Authorities
mfg
Woodfighter
https ... bin ich aktuell dabei, mit den Zertifikaten habe ich Probleme, da ich Sie selbst erstelle und die Browser dann maulen.
vielen Dank
Tach,
- Wie stelle ich auf bcrypt um
du tauscht die Passwörter in das vom Apache für bcrypt erwartete Format aus: https://httpd.apache.org/docs/2.4/misc/password_encryptions.html
- Wie verschlüssele ich für bcrypt mein Passwort
Gar nicht, du hashst höchstens mit bcrypt. Ich würde htpasswd -B
verwenden, das kümmert sich auch gleich um Salt und den Rest; ich vermute mal für bcrypt in Perl wird es etwas auf CPAN geben.
Ich halte nicht viel davon unverschlüsselte Dienste anzubieten (bei Basic Digest wird zwar das Passwort nicht im Klartext übertragen, aber alles andere schon), TLS ist keine nennenswerte Last für den Server und die Zertifikate sind auch kostenlos zu haben: https://wiki.selfhtml.org/wiki/TLS#Certificate_Authorities
https ... bin ich aktuell dabei, mit den Zertifikaten habe ich Probleme, da ich Sie selbst erstelle und die Browser dann maulen.
Dann solltest du wohl mal dem gegebenen Link folgen und den Text lesen.
mfg
Woodfighter
ich vermute mal für bcrypt in Perl wird es etwas auf CPAN geben.
Ja. Aber wie in Perl üblich ist die Benutzung cryptisch und das Handbuch trotz vieler Worte über die Theorie praktisch sehr schweigsam...
Deshalb schlage ich vor einen Wrapper für htpasswd zu benutzen
https ... bin ich aktuell dabei, mit den Zertifikaten habe ich Probleme, da ich Sie selbst erstelle und die Browser dann maulen.
Ist das ein aus dem Internet über eine weltweit gültige Adresse erreichbarer Host?
Einfacher geht es gar nicht. Der Browser meckert dann auch nicht...
Das Passwort wird mittels Perl über die Funktion crypt erstellt.
Ja. Und genau das ist der Fehler. crypt benutzt sha1 ohne Salt welches sogar unsicherer als die Apache-eigene, schwache und schwach gesalzene Implementation von MD5 ist.
Sowas könnte Abhilfe schaffen, wird aber nicht jedem gefallen:
sub htpasswd_wrapper {
## return a fin hashed password for Apache 2.4 oder 2.2
## usage htpasswd_wrapper($passwd_clear, '2.4') or usage htpasswd_wrapper($passwd_clear, '2.2')
my $passwd_clear = shift;
$passwd_clear =~ s/\"/\\\"/g;
$passwd_clear =~ s/\`/\\\`/g;
my $version = shift;
my $sys; my $passwd_hash;
if ( $version eq "2.2" ) {
$sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -i -n \"USER\";";
print $sys;
} elsif ( $version eq "2.4" ) {
$sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -i -n -B \"USER\";";
print $sys;
} else {
$sys=false;
}
if ($sys) {
$passwd_hash = `$sys`;
$passwd_hash =~ s/^USER://;
return $passwd_hash;
} else {
return false;
}
}
$passwd_hash = htpasswd_wrapper("ha'llo", '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper('ha"llo', '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper('ha`ll`o', '2.4');
print $passwd_hash . "\n";
Ein paar Fehler der Fingerübung (überflüssige/falsche Zeilenumbrüche im Ergebnis) entfernt, strict hinzugefügt, mehr Tests. Verschönert.
#!/usr/bin/perl
use strict;
sub htpasswd_wrapper {
## return a fine hashed password for Apache 2.4 oder 2.2
## usage htpasswd_wrapper($passwd_clear, '2.4')
## or htpasswd_wrapper($passwd_clear, '2.2')
my $passwd_clear = shift;
my $version = shift;
my $sys = '';
my $passwd_hash = '';
$passwd_clear =~ s/\"/\\\"/g;
$passwd_clear =~ s/\`/\\\`/g;
if ( $version eq "2.2" ) {
$sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -in \"USER\";";
} elsif ( $version eq "2.4" ) {
$sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -Bin \"USER\";";
}
if ($sys) {
$passwd_hash = `$sys`;
$passwd_hash =~ s/\s+$//;
$passwd_hash =~ s/^USER://;
return $passwd_hash;
} else {
return '';
}
}
## Tests:
my $passwd_hash;
$passwd_hash = htpasswd_wrapper("hallo", '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper("hallo", '2.4');
print $passwd_hash . "\n";
print '-' x 60 . "\n";
$passwd_hash = htpasswd_wrapper("ha'llo", '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper('ha"llo', '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper('ha`ll`o', '2.4');
print $passwd_hash . "\n";
$passwd_hash = htpasswd_wrapper('ha` | less`o', '2.4');
print $passwd_hash . "\n";
Tach,
Ein paar Fehler der Fingerübung (überflüssige/falsche Zeilenumbrüche im Ergebnis) entfernt, strict hinzugefügt, mehr Tests. Verschönert.
#!/usr/bin/perl use strict; sub htpasswd_wrapper { ## return a fine hashed password for Apache 2.4 oder 2.2 ## usage htpasswd_wrapper($passwd_clear, '2.4') ## or htpasswd_wrapper($passwd_clear, '2.2') my $passwd_clear = shift; my $version = shift; my $sys = ''; my $passwd_hash = ''; $passwd_clear =~ s/\"/\\\"/g; $passwd_clear =~ s/\`/\\\`/g; if ( $version eq "2.2" ) { $sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -in \"USER\";"; } elsif ( $version eq "2.4" ) { $sys = "echo \"$passwd_clear\" | /usr/bin/htpasswd -Bin \"USER\";"; } if ($sys) { $passwd_hash = `$sys`; $passwd_hash =~ s/\s+$//; $passwd_hash =~ s/^USER://; return $passwd_hash; } else { return ''; } } ## Tests: my $passwd_hash; $passwd_hash = htpasswd_wrapper("hallo", '2.4'); print $passwd_hash . "\n"; $passwd_hash = htpasswd_wrapper("hallo", '2.4'); print $passwd_hash . "\n"; print '-' x 60 . "\n"; $passwd_hash = htpasswd_wrapper("ha'llo", '2.4'); print $passwd_hash . "\n"; $passwd_hash = htpasswd_wrapper('ha"llo', '2.4'); print $passwd_hash . "\n"; $passwd_hash = htpasswd_wrapper('ha`ll`o', '2.4'); print $passwd_hash . "\n"; $passwd_hash = htpasswd_wrapper('ha` | less`o', '2.4'); print $passwd_hash . "\n";
zu versuchen, escaping selber zu machen, ist eine sehr blöde Idee; ohne es gerade testen zu können dürfte hier ein PW in der Form $(/bin/evil) ausreichen.
mfg
Woodfighter
Tach!
Ein paar Fehler der Fingerübung [...]
zu versuchen, escaping selber zu machen, ist eine sehr blöde Idee;
Dabei hab ich ihm (selbst als er noch anders hieß) schon so oft gesagt, dass eine schnelle Fingerübung ebenfalls keine besonders gute Idee ist. Der Code wird ohne Nachzudenken kopiert, auch wenn man tausend Mal dranschreibt, dass das keine garantierte Lösung darstellt. Und dann war's das Selfhtml-Forum, das die Sicherheitslücke ins System gebracht hat.
dedlfix.
Hallo Google,
$passwd_clear =~ s/\"/\\\"/g; $passwd_clear =~ s/\`/\\\`/g;
Dafür gibt es quotemeta
. Noch besser: nicht backpipes benutzen, sondern system
, das eine Liste von Parametern erwartet, die nicht escaped sein müssen:
system($command, @arguments);
LG,
CK
Hm.
quotemedia ist leider auch nicht der Weisheit letzter Schluss:
#!/usr/bin/perl
use strict;
use utf8; #if needed
print quotemeta('#Ä') . "\n";
print quotemeta('#ÄÄ') . "\n";
print quotemeta('#öö') . "\n";
print quotemeta('ha\'llo') . "\n";
Output:
\#�
\#��
\#��
ha\'llo
Also Mist. Utf-8? Geht es ohne?
#!/usr/bin/perl
use strict;
#use utf8; #if needed
print quotemeta('#Ä') . "\n";
print quotemeta('#ÄÄ') . "\n";
print quotemeta('#öö') . "\n";
print quotemeta('ha\'llo') . "\n";
Ergebnis:
\#\�\�
\#\�\�\�\�
\#\�\�\�\�
ha\'llo
Will auch keiner.
Nächster Test:
#!/usr/bin/perl
use strict;
#use utf8; #if needed
system ('echo', '#Ä') . "\n";
system ('echo', '#ÄÄ') . "\n";
system ('echo', '#öö') . "\n";
system ('echo', '´$(ls -l);#!#öö\'" ') . "\n";
system ('echo', 'ha\'llo') . "\n"
Output:
#Ä
#ÄÄ
#öö
´$(ls -l);#!#öö'"
ha'llo
Ok. Geht. Ich bin belehrt:
Ich brauche aber die Rückgaben! Also ist system() kein Weg. "Escape" ich doch wieder selbst … und mach es mir noch einfacher:
#!/usr/bin/perl
use strict;
use autodie qw(:all);
sub my_escape {
# gibt String in Hochkomma zurück, entwertet Hochkommas in String
## ha'llo' -> 'ha'"'"'llo'
## ha''llo' -> 'ha'"'"''"'"'llo'
my $s=shift;
$s =~ s/\'/\'\"\'\"\'/g;
return "'" . $s . "'";
}
sub htpasswd_wrapper {
## return a fine hashed password for Apache 2.4 oder 2.2
## usage htpasswd_wrapper($passwd_clear, '2.4')
## or htpasswd_wrapper($passwd_clear, '2.2')
my $passwd_clear = shift;
my $version = shift;
my $cmd='';
my $passwd_hash='';
if ( $version eq "2.2" ) {
$cmd = '/usr/bin/htpasswd -bn \'USER\' ' . my_escape($passwd_clear);
} elsif ( $version eq "2.4" ) {
$cmd = '/usr/bin/htpasswd -bnB \'USER\' ' . my_escape($passwd_clear);
}
if ($cmd) {
$passwd_hash = `$cmd`;
$passwd_hash =~ s/\s+$//;
$passwd_hash =~ s/^USER://;
print "cmd = " . $cmd . "\n"; # Debug, löschen
print "echo-Test: "; # Debug, löschen
my $test='echo ' . my_escape($passwd_clear); # Debug, löschen
$test=`$test`; # Debug, löschen
print $test; # Debug, löschen
print $passwd_hash . "\n"; # Debug, löschen
print '-' x 60 . "\n"; # Debug, löschen
return $passwd_hash;
} else {
return '';
}
}
## Tests/Usage:
my $passwd_hash;
$passwd_hash = htpasswd_wrapper("hallo", '2.4');
$passwd_hash = htpasswd_wrapper("hallo", '2.4');
print '-' x 60 . "\n";
$passwd_hash = htpasswd_wrapper("ha'llo", '2.4');
$passwd_hash = htpasswd_wrapper('ha"llo', '2.4');
$passwd_hash = htpasswd_wrapper('ha`ll`o', '2.4');
$passwd_hash = htpasswd_wrapper('ha` | less`o', '2.4');
$passwd_hash = htpasswd_wrapper('!ÖÖööÄÄääüü\/\/', '2.4');
$passwd_hash = htpasswd_wrapper('${cat /etc/passwd}', '2.4');
$passwd_hash = htpasswd_wrapper('echo foo | ls -l', '2.4');
$passwd_hash = htpasswd_wrapper('echo "foo" > /etc/htpasswd', '2.4');
Stellt sich die Frage, warum man das in Perl tun sollte. Mit password_hash() in PHP erzeugte Hashs schluckt der Apache 2.4 nämlich.
Tach,
Ok. Geht. Ich bin belehrt:
Ich brauche aber die Rückgaben! Also ist system() kein Weg. "Escape" ich doch wieder selbst … und mach es mir noch einfacher:
quotemeta mit Backticks war dir zu sicher?
mfg
Woodfighter
quotemeta mit Backticks war dir zu sicher?
Ich bin bezüglich "quotemeta mit Backticks" etwas desorientiert. Mir selbst sagt ein funktionsfähiges Beispiel (wo nicht, wie in der bei Perl-"Dokumenatation", 70% des zur Funktion führenden Quelltextes erraten werden muss) mehr als "tausend Worte".
Ich hatte doch gezeigt, dass quotemeta() bei Umlauten nicht das erwartete ausgab. Zwar habe ich mir die Hexcodes nicht ausgeben lassen, aber daraus einen Passwort-Hash zu erzeugen ist (gelinde gesagt) "todesmutig" ...
Nun ja. Perl und UTF-8 soll sich ja mit Perl 6 verbessern. Bin gespannt wie viele Entwickler dann auf Perl zurückgreifen ...
Tach,
Ich hatte doch gezeigt, dass quotemeta() bei Umlauten nicht das erwartete ausgab.
nein, nur, dass du nicht weißt, wie man UTF-8 mit PHP ausgibt (tat ich auch nicht, aber 5 Minuten suchen half):
use utf8;
my $a = quotemeta('ä');
print `echo $a`;
binmode(STDOUT, ":utf8");
print 'ä';
mfg
Woodfighter
nein, nur, dass du nicht weißt, wie man UTF-8 mit PHP ausgibt (tat ich auch nicht, aber 5 Minuten suchen half):
Aha. In PHP habe ich keine Probleme. Dein Skript mal leicht abgewandelt und getestet:
Terminal:
$ echo $LANG
de_DE.UTF-8
Skript:
#!/usr/bin/perl
## file:///tmp/test4.pl
use strict;
my $s;
my $a;
my $useUTF8 = shift;
if ($useUTF8 eq 'u') {
print "benutze UTF-8\n";
use utf8;
}
$s = 'äÄüÜöÖß';
$a = quotemeta($s);
print "-"x14 , ' Start ', "-"x14, "\n";
print $a . "\n";
print `echo $a`;
print "-"x5 , 'binmode(STDOUT, ":utf8");', "-"x5, "\n";
binmode(STDOUT, ":utf8");
$s = 'äÄüÜöÖß';
$a = quotemeta($s);
print $a . "\n";
print `echo $a`;
print "="x36 , "\n\n";
Output 1:
/tmp$ perl test4.pl u
benutze UTF-8
-------------- Start --------------
\�\�\�\�\�\�\�\�\�\�\�\�\�\�
äÄüÜöÖß
-----binmode(STDOUT, ":utf8");-----
\Ã\¤\Ã\\Ã\¼\Ã\\Ã\¶\Ã\\Ã\
äÃüÃöÃÃ
====================================
Output 2:
/tmp$ perl test4.pl
-------------- Start --------------
\�\�\�\�\�\�\�\�\�\�\�\�\�\�
äÄüÜöÖß
-----binmode(STDOUT, ":utf8");-----
\Ã\¤\Ã\\Ã\¼\Ã\\Ã\¶\Ã\\Ã\
äÃüÃöÃÃ
====================================
Brauchbar geht irgendwie anders ...
Tach,
nein, nur, dass du nicht weißt, wie man UTF-8 mit PHP ausgibt (tat ich auch nicht, aber 5 Minuten suchen half):
Aha. In PHP habe ich keine Probleme.
ah, Fipptehler.
Dein Skript mal leicht abgewandelt und getestet:
Aber nicht verstanden: der Wechsel von use utf8
zeigt schon, dass du nicht weißt, was es tut: Es ermöglicht, die Verwendung von UTF-8 als Kodierung für das Perl-Script selber; in welcher Kodierung hast du dein Script also abgespeichert?
Mein Script als UTF-8 kodierte Datei gibt bei mir zwei ä aus. Spielt man etwas mit Binmode herum, stellt man fest, dass es für Ausgaben von Rückgabewerten von qx() (und damit Backticks) nicht auf UTF-8 gesetzt werden darf.
mfg
Woodfighter
P.S. Könnte mir mal bitte jemand erklären, warum ich hier regelmäßig in Perl-Threads auftauche?
Hallo woodfighter,
P.S. Könnte mir mal bitte jemand erklären, warum ich hier regelmäßig in Perl-Threads auftauche?
Weil du eine Perle bist?
Bis demnächst
Matthias
Tach,
P.S. Könnte mir mal bitte jemand erklären, warum ich hier regelmäßig in Perl-Threads auftauche?
Weil du eine Perle bist?
der Bach, der durch Perleberg fließt?
mfg
Woodfighter
Hallo woodfighter,
der Bach, der durch Perleberg fließt?
Nö, nö. Das ist die Stepenitz, ich wohn da in der Nähe.
Bis demnächst
Matthias
Tach,
der Bach, der durch Perleberg fließt?
Nö, nö. Das ist die Stepenitz,
https://www.google.de/maps/place/53°05'27.0"N+11°52'16.0"E/@53.0910134,11.8701239,15z/data=!4m5!3m4!1s0x0:0x0!8m2!3d53.090833!4d11.871111, in OSM scheint er zu fehlen
ich wohn da in der Nähe.
Irgendwas muss ja um Berlin drum rum sein…
mfg
Woodfighter
Hallo woodfighter,
https://www.google.de/maps/place/53°05'27.0"N+11°52'16.0"E/@53.0910134,11.8701239,15z/data=!4m5!3m4!1s0x0:0x0!8m2!3d53.090833!4d11.871111, in OSM scheint er zu fehlen
war mir bis dato unbekannt. Aber die Wikipedia kennt ihn auch.
Bis demnächst
Matthias
Es [use utf8;] ermöglicht, die Verwendung von UTF-8 als Kodierung für das Perl-Script selber; in welcher Kodierung hast du dein Script also abgespeichert?
UTF-8 natürlich. Das steht nicht grundlos in $LANG mit drin.
Spielt man etwas mit Binmode herum, stellt man fest, dass es für Ausgaben von Rückgabewerten von qx() (und damit Backticks) nicht auf UTF-8 gesetzt werden darf.
echo '<strong>Sowas nervt gewaltig!</strong>';
[...] Bin gespannt wie viele Entwickler dann auf Perl zurückgreifen ... [...]
Für Neuentwicklungen "from the scratch" bestimmt nur Exokten und Perverse. Aber es gibt eine ganze Menge an produktivem Code in Perl, in freier wie auch kommerzieller Software.
Bzggl. "Perl 6" bin ich mittlerweile auch sehr skeptisch geworden, aber "Perl 5" wird uns sicher noch eine ganze Weile begleiten.
Tach,
Ich brauche aber die Rückgaben! Also ist system() kein Weg.
wozu brauchst du die Rückgaben? Es geht schließlich darum Passworte in Dateien zu schreiben, das macht htpasswd für dich.
mfg
Woodfighter
wozu brauchst du die Rückgaben?
Ich selbst eigentlich gar nicht :-)
Es geht schließlich darum Passworte in Dateien zu schreiben, das macht htpasswd für dich.
Naja, der piet wäre gut beraten sich nach einem moderneren Tool für die Passwortverwaltung umzusehen statt an dem alten rumzumurksen. Wer weiß was da noch kaputt ist.
use Shell qw(htpasswd);
damit hat mich mal vor gefühlten 17 Jahren ein Praktikant überrascht, d.h., die Überraschung bestand für mich darin, dass er's benutzt hat und auch von selbst darauf gekommen ist.
PS: Dass das hier keiner weiter kennt, überrascht mich nicht sonderlich.
Und dann wäre noch CPAN mit erstklassigen Modulen für den Zugriff auf die Apache-Passwort-Datei bzw. Apache-Crypt-Algorithm.
use Shell qw(htpasswd);
Kannte ich auch nicht! Kurze Recherche ergab: kein Core-Modul! Sondern:
https://metacpan.org/pod/Shell
Zitat: "This package is included as a show case, illustrating a few Perl features. It shouldn't be used for production programs."
PS: Dass das hier keiner weiter kennt, überrascht mich nicht sonderlich.
Mich auch nicht, ist ja offensichtlich auch ziemlich nutzlos.
Moin
Autsch :-)