Hallo Felix,
Was soll schon passieren, die werden ignoriert. Würden ja nur einen SQL-Fehler verursachen.
Soso. Eine gefährlichere Grundhaltung kann ich mir an dieser Stelle nicht vorstellen. SQL-Injections welcome... WTF?!
Hier hätten wir mal ein Beispiel von Grundverständnis. Ich denke bisher, dass Daten nur in Form von $_GET, $_POST, $_REQEST und $_COOKIES an meine Tür klopfen. Bald ist Halloween und du malst ein Gespenst, nicht wirklich greifbar. Bange machen gilt nicht, welches Problem siehst du konkret?
Zu Beginn eines Programms hole ich immer schon die möglichen Werte in ein Quarantäne-Array. Ja ich weiß, viele hier halten das Kopieren für überflüssig. Aber diese Werte prüfe ich dann auf Plausibilität, ergänze sie ggf. Nur mit diesen Daten wird weitergearbeitet.
Hast du mal einen Link, wie andere eine solche Eingangskontrolle machen?
Zwecks Speicherung hole ich mir seit Kurzem die Spalten-Namen per SQL. Für jeden Namen schaue ich, ob isset( $_POST.. ) vorliegt und das Feld in meinem Quarantäne-Array ist. Wenn ja, hole ich mir den Wert von dort. Mag sein, dass SQL-Injection versucht wird, habe ich schon erlebt. Doch die Werte gehen mit addslashes in die Datenbank. Siehst du hier eine Lücke?
Vielleicht sollte ich jeden ankommenden Wert noch auf Länge prüfen, das dürfte Angriffsversuche zusätzlich vereiteln. Mal sehen, ob SQL mir auch die Feldlänge verrät. Wahrscheinlich in Klammern wie bei int(11) und varchar(50).
So vermeide ich, dass fehlende Werte (weil sie in der <form> nicht vorkommen) vorhandene Daten mit NULL oder Blank überschreiben.
Sehr änderungsfreundlich. Möchte ich ein Input-Feld ergänzen oder abwählen, muss ich in PHP nur mein Quarantäne-Array ergänzen / verringern, die Plausi-Prüfung mit Fehlermeldung hinzufügen / wegnehmen, aber sonst gar nichts am Code.
Gruß, Linuchs