Alexander (HH): No Tainted Love...

Beitrag lesen

Jepp. Zu Hause habe ich 5.8.7 (Active State, da Windows-PC)...

Auch nicht das neueste, aber schonmal ganz gut.

»Programmieren mit Perl« ... veraltet

Im Zweifel gilt das, was Perl an Doku mitbringt, und wenn die Übersicht ganz weg ist, helfen gerne auch mal die Perlmonks weiter.

Apache/1.3.33 (Unix) auf Debian-Linux.
"Da sprach der alte Häuptling der Indianer ..." ;-)

Ja, allerdings scheint der alte Häuptling bei Webhostern noch weit verbreitet zu sein ;)

Nicht nur bei denen. Die 1.3er-Serie ist einfach saustabil und bewährt. Wobei bei Debian dazu kommt, dass Debian jede Menge Bugfixes backportet, ohne die Versionsnummer zu erhöhen.

Im 1&1-Controlcenter gibt es zwei Utilities "Perl-Syntax-Checker"

Danke, sehr guter Tipp. Hier das Ergebnis von »tainted_test.pl" ohne -T:

Ergebnis:+ Check succeeded
    /../../../../../tainted_test.pl syntax OK
    STDOUT OK STDERR OK

und hier mit -T:

Ergebnis:- cgi: File has no correct script header
    (should be #! /usr/bin/perl)
    (no output)

Das würde bedeuten, dass es mir bei 1&1 nicht möglich ist, Taintchecks vorzunehmen und also doppelte Vorsicht bei Scripts walten lassen muss, die Eingaben von außen bearbeiten?

Das bedeutet, dass man die guten Sicherheitsstiefel mit den Stahlkappen anzieht und sich bei 1&1 a***tretend die Support-Hierarchie hochkämpft. :-(

und "CGI-Ausgabe-Monitor", vielleicht helfen die Dir weiter. Letzterer sieht vielversprechend aus,

Hm, hier wird keine Variante bemägelt, beide gehen durch. Ich nehme an, dass das Feld "Parameter" für die Angabe eines Query Strings gedacht ist?

Keine Ahnung, ich hab die Tools noch nie benutzt.

Jedenfalls brachte hier ein -T auch keine Änderung an den Ergebnissen:

Ergebnis:+ CGI Check succeeded
    Content-Type: text/html; charset=ISO-8859-1

Tainted love!
    STDOUT OK STDERR OK

ich will jetzt aber nicht auf dem Firmenwebseiten meines Arbeitgebers rumtesten.

Sind dessen Seiten bei 1&1?

Ja, mit genau dem gleichen Paket.

mod_perl aktiv?
Wie kann ich das überprüfen?
$ENV{'MOD_PERL'} existiert,

Ausgabe ist leer.

Leer, undefiniert oder nicht vorhanden?
(!length, !defined, !exists)

Was 1&1 da bloß gebastelt hat...
Irgendwelche bösen Spielchen mit redirect finden bei CGI-Aufrufen übrigens auch noch statt.

Hm ja... Zu Beginn (ich bin erst seit März dort gehostet) konnte ich keine eigene 500er-Seite generiereren lassen, trotz entsprechender Angabe in der .htaccess. Erst ein mehrmaliges Schriftwechsel mit dem Support, [...] Also wird sehr wohl intern da herumgefriemelt, denke ich mal.

Ja, jede Menge. Ich gehe mal davon aus, dass massiv an dem Apachen verändert wurde, um statische Dateien möglichst schnell und resourcenschonend auszuliefern und CGIs möglichst ohne Last und Support-Calls laufen zu lassen. Sehr wahrscheinlich gibt es eine Begrenzung für Zeit und Speicher, und vermutlich wird die CGI-Umgebung erst einmal von einem anderen Prozess vorbereitet.

Installiere Dir mal den Windows-Apachen in 1.3.x (gibts direkt als Binary bei apache.org) und vergleiche die Environments, insbesondere die REDIRECT-Variablen.

Alexander