rob: Mailscript schützen gegen Hack-Attacken???

Beitrag lesen

Hi!

und wie mach ich das?
Das habe ich immer noch nicht verstanden...

Du weißt nicht, wie du etwas in einer Variable speicherst?
Also so sieht der Aufruf von mail() bei dir aus:

mail($empfaenger,"Formular: Nachricht von ".$nameeingabe,"  
$nameeingabe machte folgende Angaben im Formular:  
------------------------  
Name:      $nameeingabe  
E-Mail:    $email  
Nachricht: $nachricht  
------------------------  
  
","From: $nameeingabe <$email>");

Und so würde ich den Nachrichtentext nicht direkt im Funktionsaufruf von mail() unterbringen, sondern dieses erst in einer Variablen speichern und diese dann übergeben.
In etwa so:

$betreff = "Formular: Nachricht von " . $nameeingabe;  
  
$nachricht = "$nameeingabe machte folgende Angaben im Formular:\n\n";  
$nachricht.= "------------------------\n";  
$nachricht.= "Name:      $nameeingabe\n";  
$nachricht.= "E-Mail:    $email\n";  
$nachricht.= "Nachricht: $nachricht\n";  
$nachricht.= "------------------------\n";  
  
mail( $empfaenger, $betreff, $nachricht, "From: $nameeingabe <$email>" );

Natürlich könnte man dazu auch eine Heredoc-Bereich einsetzen.

Und wie bereits geschrieben wurde:
Niemals darfst du Variablen einfach ungeprüft übernehmen und deinen Funktionen übergeben.
In deinem Script besteht hier die Gefahr eines Angriffes per E-Mail-Injektion.
Daher mußt du (am besten mit deinen regulären Ausdrücken) zusehen, daß du eventuell gesendete Zeilenumbrüche (z.B. im Betreff) unschädlich gemacht werden. Ansonsten könnte man mail() eventuell ungewünschte Headerzeilen unterschummeln.
Dadurch wäre es dann möglich, das Script zum Versand von Spam zu nutzen.

Was waren nochmal Double-Quotes? *Kopfkratz*

Double-Quotes sind die doppelten "Anführungszeichen".
Naja, typografisch gesehen sind es eigentlich keine Anführungszeichen, auch wenn die dafür oft benutzt werden.
Daher habe ich auch "Double-Quotes" geschrieben und nicht "Anführungszeichen".
Single-Quotes hingegen, sind die einfachen 'Anführungszeichen' bzw. 'Hochkommata'.

Schöner Gruß,
rob