SQL Injection bei Rails
Sicherheit von Web-Applikationen ist eines meiner Lieblingsthemen. So habe ich vor einigen Jahren ein Papier zum Thema SQL Injection und Cross-Site Scripting geschrieben. Dieses diente damals einem Firmen-internen Vortrag bei meiner Lehrfirma. Der Schwerpunkt dieses Papiers lag auf der Verhinderung der Angriffe mit Active Server Pages. Das Thema ist nach wie vor aktuell, und nach wie vor gibt es da viel zu tun. Bei der Evaluation von Ruby on Rails ist es für mich auch wichtig, wie ich da SQL Injection und Cross-Site Scripting verhindern kann. Das Manual Securing your Rails ist prominent auf der Startseite des Bereiches Dokumentation verlinkt und gibt Auskunft. Erstmal kümmert sich Rails um sehr viele Dinge selber. So werden ja viele Funktionen für den Datenbank-Zugriff der Daten automatisch generiert und diese sind gegen SQL Injection Probleme geschützt. Um bei einer eigenen Query (find_all heisst die Funktion dazu) keine Probleme damit zu erhalten, müssen die Benutzer-Eingaben bereinigt werden. Dazu kann man eine Methode verwenden, welche der Möglichkeit von “Prepared Statements” in anderen Frameworks nicht unähnlich ist. Ein Beispiel: ...