Cheatah: Regulärer Ausdruck für SQL-Where-Klausel gesucht

Beitrag lesen

Hi,

Bingo! Und deshalb will ich, bevor das Statement an die Datenbank geht, auch auf Gültigkeit prüfen lassen.

ach so, da habe ich Dich missverstanden, sorry.

Kann man da noch ein delete-Statement einfügen? Ich weiß, der User ist grundsätzlich böse *g*, aber das müßte dann doch einen SQL-Fehler geben, oder täusche ich mich da?

Nicht, wenn das DBMS Befehlstrenner akzeptiert.

Aber ein programmtechnisches Abfangen, sei es mit JavaScript (eher schlechte Idee) oder Perl (bessere Idee) ist doch möglich?

Regular Expressions reichen da nicht aus. So dürfte beispielsweise ein "; DELETE FROM" verboten sein (wenn man mal davon ausgeht, das Semikolon sei der Befehlstrenner), innerhalb von Singlequotes jedoch nicht. Nein, Du brauchst einen Grammatik-Parser, der dem Deines DBMS' entspricht. Von der Komplexität her veranschlage ich die Größenordnung einiger Dutzend bis einiger hundert Codezeilen. Die Alternative ist, _nicht_ die Eingabe einer WHERE-Klausel zu ermöglichen, sondern über eine GUI ausschließlich die erlaubten Wertekombinationen anzubieten, welche Du dann höchstens noch richtig kodieren musst.

Cheatah

--
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes