HowTo to avoid Bobby tables

Wie SQL Spritzen wirken?

bobby tables
Quelle: http://xkcd.com/327/

Schule: „Hallo, hier spricht die Schule Ihres Sohnes. Wir haben Computerprobleme.“
Mutter: „Auweia – hat er etwas kaputt gemacht?“
Schule: „So ähnlich. Haben sie wirklich Ihren Sohn Robert‘); DROP TABLE Students;–‚ genannt?“
Mutter: „Oh. Ja. Wir rufen ihn klein Bobby Tables.“
Schule: „Also, der Datenbestand der Schüler dieses Jahres ist jetzt futsch. Ich hoffe, Sie sind jetzt glücklich.“
Mutter: „Und ich hoffe, Sie haben gelernt, Datenbankeingaben zu säubern.

Wie sollte man nicht programmieren?

Wie fördert man(n) Bobby Tables?

  • Indem man Input-Sanitizing in der Softwareentwicklung ignoriert.
  • Indem man SQL-Anweisungen ungeprüft verarbeiten lässt, die aus dem bösen Internet kommen.
  • Indem man SQL-Aufrufe mit Parametern an verwundbare Webanwendungen sendet.
  • Indem man gleich die Zugangsdaten zur Datenbank in seiner Webanwendung veröffentlicht 😉

Fördere erfolgreiche Injektionen aus dem bösen Internet ?

Ist das (fast) alles? Nein natürlich nicht. Man kann auch nach andere Grundlagen ignorieren, die bei der Softwareentwicklung zum Handwerkszeug eines Profis gehören. 😮

  • Versuchen Sie auch nicht ungültige Zeichen zu maskieren etc. Ein guter Pentester findet immer eine Lücke!
  • Versuchen Sie nicht zu übergebende Daten nachträglich manuell zu bereinigen bzw. säubern.

Wie sollte guter Code gestrickt sein?

  • Lerne einfach parameterisierte Anweisungen zu nutzen – immer und ohne Ausnahme
  • Sorge dafür, dass nur der Anwendungsinput verarbeitet wird, der verifiziert und „sauber“ ist.
  • Im Idealfall werden Pentester arbeitslos 😉

Anbei Quellen zum Thema SQL Injektionen und den eingangs angesprochenen SQL Spritzen: