echo $begrüßung;
36 $email_hauptteil ="$vorname.'<br />'.$nachname.'<br />'.$nachricht.'<br />'.$email;
br's haben da nix zu suchen. Ausserdem kann Dir ein Angreifer leicht unerwünschte Headerzeilen unterschieben, wenn Du diese Angaben nicht validierst.
Nun, in dem Fall nicht, weil er gar keine Benutzereingaben in Headerzeilen einfließen lässt. Sie landen nur im Body und da sind sie aus Email-Sicht ungefährlich.
Ist schon richtig, daß man bei PHP wie ein Schiesshund auf solche Sachen peinlich acht geben muss.
Das ist kein Alleinstellungsmerkmal PHPs. In jeder Programmiersprache muss man sicherstellen, dass dies nicht passieren kann.
Hat Simon in dem Fall aber getan. Alle Stringvariablen ergeben sich aus $_POST[] bzw. @$_POST[] und sind damit narrensicher.
Das ist eine unsinnige Aussage, die vermutlich auf einem Irrtum deinerseits beruht.
3 $vorname = @$_POST['vorname'];
Eine solche Umkopiererei ist schon deshalb nicht narrensicher, weil dieser Vorgang unnötig ist, es die Herkunft des Wertes verschleiert und mehr Variablen die Komplexität nicht verringern.
Die Werte können nur aus einer Aktion stammen die was mit POST zu tun hat. Können in einer Headerzeile also jetzt nicht mehr angegriffen werden, etwa so:
/script.php?vorname=stefan&name=muenz....
Das ist keine Headerzeile. Das ist ein Teil einer URL mit einem Query-String. Es geht um die Headerzeilen einer Email. Egal wo die Werte für Betreff, Empfänger und zusätzliche Header herkommen (GET, POST, Cookie, usw.), sind sie dahingehend zu überprüfen, dass sie keine ungewollten Zeilenumbrüche enthalten, denn dadurch kommt die Email-Header-Injection zustande.
wichtiges Thema! Nicht umsonst wird bei heise.de im Forum immer und immer wieder ghöhnt, geätzt und gelächtert wenns um irgendwas rund um PHP geht. mal "taugt PHP nix", ist nur für "Anfänger oder Amateure" und und...
Wer auf diese unsachlichen (Inhalt und Stil) Aussagen etwas gibt ist in dem Punkt vermutlich auch nicht viel klüger als der Schreiber.
Dabei muss man faktisch gesehen nur einige Sicherheitsregeln beachten. Leider gibts bis dato kein übersichtliches Kompendium für PHP Sicherheit was man genauso schnell lernen kann wie PHP selber!?
Sicherheit ist kein einmalig und einfach zu erlernender Lehrstoff. "PHP schnell lernen" bezieht sich auch nur auf die Grundlagen und kann umfassend ebenso wenig in kürzester Zeit erlernt werden wie das für natürliche Sprachen gern angepriesen wird. Ein Artikel, der sich mit der sicherheitstechnisch relevanten Konfiguration von PHP beschäftigt wäre Grundsicherung für PHP-Software. Weiterhin hat das PHP-Handbuch ein Hauptkapitel mit Sicherheit überschrieben, in dem diverse Aspekte rund ums Thema abgehandelt werden. Das Wichtigste ist jedoch nicht die genügend vorhandene Literatur zum Thema sondern der Erkenntnisprozess eines jeden beginnenden Programmierers, dass zwischen "funktioniert wie gewünscht" und "ist robust gegen Fehlerzustände und immun gegen Angriffe" eine große Lücke gibt, die es mit Code auszufüllen gilt, der oftmals umfangreicher wird als der für die eigentliche Aufgabe.
echo "$verabschiedung $name";