echo $begrüßung;
Nein. Aus Sicht des DBMS handelt es sich ja nicht um Code sondern, wie gesagt, nur um Daten. Als Code wird er erst wieder interpretiert, wenn er in den HTML-Kontext gelangt. Dagegen hilft nur die HTML-gerechte Behandlung der Daten, indem man die HTML-eigenen Zeichen beachtet und entsprechend behandelt.
Ich glaube ich verstehe, was Du meinst. Es geht ja letztendlich wahrscheinlich um manipulierte GET- oder POST-Daten. Wenn ich diese also vor der Verarbeitung in einem SQL-Statement so kodiere, daß aus " ein & wird, habe ich kein Problem mehr?
Jein. Es ist kein Problem, Zeichen, die im HTML-Kontext eine besonderen Bedeutung haben, wie beispielsweise <, > oder &, in eine Datenbank zu schreiben. Es ist sogar oftmals besser, die Daten in ihrer Originalform zu speichern, nicht in einer Form, die bereits an irgendein Ausgabemedium angepasst ist. Zum einen kann man dann beispielsweise direkt danach suchen, und Stringlängenfunktionen geben ein "richtigeren" Wert zurück ('A & B' sind 5 Zeichen. HTML-codiert dagegen 9 ('A & B')). Zum anderen hast du es umso schwerer, falls mal ein neues Ausgabemedium hinzukommt, das eine ganz andere Behandlung verlangt. Deswegen solltest du immer erst direkt vor der Ausgabe an ein anderes Medium die auszugebenden Daten für dieses Medium behandeln.
Wenn du nun sowohl SQL-Injection in Richtung Datenbank als auch HTML-Injection in Richtung Browser verhinderst, bist du auf der sicheren Seite. Was du damit nicht verhinderst, ist ein Anzeigen dieser ungewünschten Eingabe, die zwar blöd aussehen mag, aber unschädlich ist. Wenn jemand "Schei...benkleister" schreibt, du aber keine solchen Ausdrücke magst, ist das im Prinzip das gleiche Problem. Es ist das ärgerlich, aber sicherheitstechnisch unbedenklich. Es reicht in beiden Fällen, den betroffenen Datensatzu zu löschen.
Unabhängig von den genannten Sicherungsmaßnahmen, die auf jeden Fall anzuwenden sind, kann man als Vorbeugemaßnahme gegen unerwünschten Inhalt eine Prüfung der Daten beim Entgegennehmen hinzufügen, z.B. gegen eine Blacklist.
echo "$verabschiedung $name";