Problem: Carico d’esercizio CAT E2


Thomas Wölfer
Thomas Wölfer

19. September 2012


In der Baustatik kann man eigene Einwirkungsarten definieren, die  man dann später für Lastfälle verwenden kann. So machte das vor kurzem Beispielsweise ein italienischer Kunde mit der “operativen Belastung”.

Jetzt ist es so, das die definierten Einwirkungsarten alle in einer Datenbanktabelle landen, damit man diese später wiederverwenden kann. Und alle Werte die man dafür eingeben kann, werden vom Programm auch auf Plausibilität überprüft – nur der Text nicht: Was kann man da schon groß prüfen, immerhin handelt es sich ja einfach nur um einen beliebigen Text.

Das war zumindest die irrige Annahme, auf der Basis die Baustatik das bis heute behandelt hat, denn selbst dieser Text kann dummerweise Ärger machen. Er wird nämlich, zusammen mit allen anderen Daten, in einen SQL-Befehl gesteckt, der dann seinerseits an die Datenbank gesendet wird. Der SQL-Befehl ist im wesentlichen eine weitere Zeile Text, die die eigentlich SQL-Befehle und außerdem die zugehörigen Daten enthält. Und darin sind die Daten gesondert markiert: Und zwar mit Hochhaken. Und zwar mit genau den Hochhaken, die auch in “Carico d’er…” vorkommen.

Ergebnis: Die Datenbank erkennt hinter dem ‘d’ das Ende der Daten und erwartet einen weiteren Befehl. Den Befehl ‘esercizio’  gibt es aber nicht. Resultat: Eine blöde Fehlermeldung die man nicht wieder richtig wegbekommt. (Diesen speziellen Fall nennt man übrigens SQL-Injection Attacke)

Ab dem nächsten Update kann das aber nicht mehr auftreten…