echo $begrüßung;
Wenn ich einen "Aufruf" über GET mache, besteht die Gefahr, dass der Besucher der Seite Mißbrauch betreibt. Gibt es denn eine Art "Liste" von Möglichkeiten, mit denen man sich absichern kann?
Nein, nicht wirklich. Je nach Anwendungsfall muss man da gezielt vorgehen. Es kommt darauf an, was du mit der Benutzereingabe vorhast. Und das gilt im Prinzip für alle Werte, nicht nur für Benutzereingaben. Wann immer du einen Wert in einem bestimmten Kontext ausgibst ist dieser dem Kontext entsprechend zu behandeln. Soweit der allgemeingültige Lehrsatz. Die Schwierigkeit besteht nun darin, den richtigen Kontext zu erkennen. Beispielsweise ist mysql_real_escape_string() kein Allheilmittel für Werte, die in ein MySQL-Statement eingebracht werden sollen, wie du in diesem Faden gesehen hast. Neben dem Kontext "String im SQL-Statement" gibt es noch den Kontext "MySQL-Identifiers" und "nacktes SQL", die jeweils getrennt betrachtet werden müssen. Die Behandlungsregeln für Indentifiers sind einfach zu implementieren. Für Einfügungen in den restlichen SQL-Teil muss man individuelle Lösungen finden.
Kontextwechsel finden aber auch an anderen Stellen statt, beispielsweise beim Einfügen von Werten in HTML, XML, URLs, Javascript, CSV, sonstige Dateien. Manchmal sind sie auch geschachtelt anzutreffen, zum Beispiel: Wert in URL in HTML.
Zusätzlich zur kontextgerechten Behandlung sollte man die Eingabewerte auf gültigen Inhalt prüfen oder zwangsbehandeln. Wenn man eine Integerzahl erwartet kann man den Eingabewert durch intval() schicken und hat nun garantiert eine (und im Fehlerfall eine 0). Wenn man einen Wert erwartet, den man in eine Mail-Header-Zeile einfügen will und man findet darin einen Zeilenumbruch ist das garantiert kein gültiger Wert. Usw. usf. Letztlich hilft dir nur Erfahrung, ein waches Auge und ein Hang zur Penibilität.
echo "$verabschiedung $name";