Try, Catch, Finally. Logik (und Ethik?) von Fehlern

Ich bin heute morgen über zwei Dinge fast gleichzeitig “gestolpert”. Reuters meldete, dass in den USA nicht mehr generell gesetzlich ausgeschlossen werde, dass Autos von Maschinen gesteuert werden. Und fast gleichzeitig verdichteten sich die Meldungen, dass das schwere Zugunglück in Bad Aibling möglicherweise durch menschliches Versagen verursacht worden sein könnte. Konkret geht es hier darum, dass ein Mensch entschieden haben könnte, ein technisches Sicherungssystem außer Kraft zu setzen. Über den Tag mehrten sich die Indizien, dass keine technische Störung vorlag (und folglich steigt die Wahrscheinlichkeit, dass die korrekte Entscheidung einer technischen Sicherungslogik durch einen Menschen “überstimmt” wurde. Das passt – angesichts der vielen Toten und Verletzten in Bad Aibling muss man das sehr bedauern – zum Umgang mit menschlicher und technisch-logischer Entscheidung. “Try, Catch, Finally. Logik (und Ethik?) von Fehlern” weiterlesen

Das Semikolon

SQL trennt seine Anweisungen mit Semikolons oder wie auch immer der Plural von den Dingern heißt. Und führt Anweisungen hintereinander aus, wenn in einem Aufruf mehrere gültige Anweisungen durch Semikolons getrennt vorkommen. Der Hesse sagt also “uffbasse”, das ist ein Imperativ und heißt  “Aufpassen”. Aufpassen worauf?

Aufpassen, dass unter keinen Umständen jemand sein eigenes Semikolon mitbringen kann, wenn ihr den Datenbankserver abfragt:

Angenommen, der Inhalt eines Suchfelds wird in eine Datenbankabfrage eingefügt, und zwar so:

SELECT * FROM `Table`WHERE `LastName`= “BENUTZEREINGABE”;

Dann kommt doch tatsächlich jemand und sucht nach

Schmidt; DROP `Table`;

Was passiert dann wohl? Große Scheiße! Und das war noch die harmloseste Art von SQL Injection. So nennt man das, wenn jemand sein eigenes Semikolon mitbringt. Also uffbasse, gelle?!