phpbar.de logo

Mailinglisten-Archive

[php] Wo liegt der Fehler in dieser Zeile?

[php] Wo liegt der Fehler in dieser Zeile?

Jens Benecke php_(at)_phpcenter.de
Tue, 6 Nov 2001 21:44:05 +0100


On Sun, Nov 04, 2001 at 11:50:22PM +0100, David Schubert wrote:
 
> die folgende Zeile sollte eine Mail (die Datei $fmtSupportMail) an die
> Adresse in der Variablen Mail schreiben. Tut sie aber nicht. Weiss
> jemand, wo der Fehler liegt?
> 
> mail($HTTP_GET_VARS["Mail"], $HTTP_POST_VARS["supportsubject"],
> $fmtSupportMail);

Dieser Code ist ein potenzieller Sicherheits-GAU, wenn ichs richtig
erinnere. Es gibt einen Grund, warum Perl einen 'tainted mode' hat, in
welchem verhindert wird, daß Variablen, die durch externe Vorgänge gefüllt
werden, ohne vorherige Vorberarbeitung an andere externe Programme
weitergegeben werden.

Dies ist hier der Fall, du hast einen Wert ($Mail), der von einem externen
Vorgang (einem Formular) kommt, dessen Eingaben du prinzipiell nicht trauen
kannst. Und du willst diesen Wert direkt an ein externes Programm
(Sendmail) weitergeben. 

Tu das nie. Niemals, niemals und nie und nimmer. Prüfe $Mail wenigstens auf
rudimentäre Korrektheit, sonst hast du einn potenzielles Scheunentor in
deinem System, vor allem dann, wenn Sendmail auch noch unter root-Rechten
läuft.


-- 
Jens Benecke ········ http://www.hitchhikers.de/ - Europas Mitfahrzentrale
   · . ·
· · . · . ·  <-------- verdächtiges weisses Puder
 · . · . .
    · ·


php::bar PHP Wiki   -   Listenarchive