dedlfix: Kontextwechsel - Sichere queries in SQLite3

Beitrag lesen

Hi!

ich wollte Benutzereingaben sicher machen. Für den Fall, dass User ' (Hochkomma) eingeben wollte ich den String durch addslashes() formatieren. Ok, maskiert. Irgendwo habe ich gelesen, dass die Maskierung durch den \ ebenfalls für SQL gültig ist. Allerdings anscheinend nicht für SQLite3?!?

Standard ist wohl eine Verdopplung. (MySQL kann auch '.) Und addslashes() kannst du vergessen, solange es etwas systemspezifisches gibt.

Hier habe ich dann von der nativen Funktion escapeString gelesen. Die ist jetzt so nett und macht aus ' ein ".

Macht sie das? Ich würde ja annehmen, dass sie '' aus einem ' macht.

Und was, wenn der User jetzt Lil' John heisst?

Dann macht die Funktion genau das richtig für das SQL-Statement. Hast du Angst, dass deine Daten verfälscht werden? Dann lies bitte nochmal die Einleitung vom Kontextwechsel-Artikel, denn dann hast du das Prinzip nicht verstanden.

Gibt es da irgendeine Lösung? Funktioniert das escapen der Hochkommas in MySQL?

Wenn man es richtig macht, funktioniert alles.

Lo!