dedlfix: Über 1800 Aufrufe meiner Webseite Hacker-Versuch?

Beitrag lesen

Tach!

nein, das letzte ' in der FM dürfte aus seinem ursprünglichen SQL stammen.

Worauf bezieht sich das "nein"? Ich meinte schon das zweite und nicht das letzte. Das was zwischen den beiden ersten Kommentaren gleich hinter der Zahl vom Anfang steht.

Dass tabelle_id ein int ist und kein char/varchar, wäre anzunehmen. Aber sicher wissen wir das nicht. MYSQL hat sich ja das Type Juggling bei PHP abgeguckt und errät nach bestem Wissen und Gefühl die User-Absichten. Gelegentlicher Zehenverlust bei Schüssen in den Fuß nicht ausgeschlossen. Dann doch lieber ein ehrlicher Type Mismatch Error.

Ich seh das nicht als tragisch an. Ob in dem SQL-Statement zuerst ein String erkannt wird und anschließend die Zahl daraus konvertiert wird, oder ob die Zahl direkt aus einem Zahlenliteral konvertiert wird, macht das Kraut nicht fett. In beiden Fälle steht sie da als String.

Wenn's eine INT Column ist, hast Du recht. Wenn man einen Integerwert erwartet, prüft man nicht auf einen String. Dann nimmt man intval() und schaltet eventuell eine /\d+/ Regex vor.

Empfohlen wird manchmal auch die filter_input-Funktion mit FILTER_VALIDATE_INT. Ich selbst mag die filter-Funktionen nicht so, weil die die Seuche mit führenden Nullen und Oktalzahlen haben.

intval() erkennt auch Oktalzahlen.

dedlfix.