Tach!
Ich habe irgendwo mal gelesen:
"GET- und POST-Werte dürfen niemals direkt in SQL-Abfragen eingefügt werden"
Wenn's stimmt, wie soll ich das sonst machen?
So wie die Aussage formuliert ist, oder du sie dir gemerkt hast, ist sie nicht sehr sinnvoll. Selbst wenn sie stimmen würde, ändert sich an einem Wert nichts, wenn er in eine andere Variable kopiert wird. Es ist immer noch der "direkte" Wert.
Diese Aussage meint vermutlich, dass der Kontextwechsel beachtet werden muss, sprich: die Werte müssen so eingefügt werden, dass sämtliche Zeichen als solche und nicht als Syntaxbestandteil der umgebenden Query angesehen werden. Konkretes Beispiel: ein Hochkomma beendet einen Sting, wenn er damit begonnen wurde. Ein Hochkomma in den eingegebenen Daten muss deshalb als ' notiert werden, um seine syntaktische Eigenschaft zu verlieren.
Dieser Kontextwechsel muss bei allen Arten von Daten und bei allen Arten von Zielen berücksichtigt werden. Ihn auf Nutzereingaben zu beschränken oder den Fokus darauf gegenüber anderen Datenquellen hervorzuheben, ist nicht sinnvoll. Hochkomma bleibt Hochkomma, egal wo es herkommt. Insofern solltest du den Satz vergessen und stattdessen die Kontextwechsel-Geschichte im Allgemeinen verstehen und beachten. - Und nun empfehle ich, dir den Artikel (nochmal) im Ganzen anschauen (falls noch nicht geschehen), damit du zumindest die häufgsten im Web-/PHP-Umfeld vorkommenden Arten von Kontexten kennenlernst.
dedlfix.