Hallo Martin,
selbst ins Knie gesschossen? Wieso greifst du bei einem GET-Request auf die Keys und Values in $_POST zu? Das muss ja schiefgehen.
ach, Mist, das sollte da gar nicht stehen. In meiner Verwirrung hatte ich das Ganze mal an der Stelle mit $_GET
ausprobiert – nur, um zu sehen, was passieren würde. Aber im ursprünglichen Code stand $_POST
. Geht leider trotzdem nicht.
By the way: Warum machst du immer doppelte Zeilenumbrüche im Code? Übersichtlicher wird's dadurch nicht.
Für mich an meinem Monitor ist das viel lesbarer. Ich kann den Code viel schneller visuell erfassen. Wahrscheinlich habe ich da einfach eine komische Wahrnehmung. 🤷♂️
Ja, und die Absicht ist löblich, aber der Ansatz komplett falsch. Es gibt keine per se bösartigen Eingaben. Die kontextgerechte Aufbereitung (meist durch Maskierung oder Codierung) sollte da erfolgen, wo die Daten bei der Verarbeitung in einen anderen Kontext gelangen, wo bestimmte Zeichen plötzlich Schaden anrichten könnten. Einfach bei der Ankunft alles plattzubügeln, ist kontraproduktiv.
Hmm, ich habe diese Vorgehensweise aus einem Tutorial zum Schreiben eines MVC-Frameworks. Ich muss mich in Bezug auf SQL Injections weiterbilden.
Bei welcher Request-Methode? GET oder POST? Weil ... für POST sieht's ja korrekt aus. Abgesehen von der wenig sinnvollen Keule filter_input(), deren Sinnhaftigkeit ich generell in Frage stelle.
Für POST-Requests. Wäre es also sinnvoller z.B. so was hier zu machen:
function input_filter($data) {
$data = trim( $data );
$data = stripslashes( $data );
$data = htmlspecialchars( $data );
return $data;
}
Danke schon mal bis hierhin.
Grüße
Boris