Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version Jetzt Buch bestellen
* versandkostenfrei in (D) und (A)
Pfeil 17 Sicherheit
  Pfeil 17.1 Warum Sicherheit wichtig ist
  Pfeil 17.2 SQL Injection
  Pfeil 17.3 Cross-Site-Scripting XSS
  Pfeil 17.4 Cross-Site Request Forgery (CSRF/XSRF)
  Pfeil 17.5 Sessions
  Pfeil 17.6 Validierung
  Pfeil 17.7 Reguläre Ausdrücke


Rheinwerk Computing - Zum Seitenanfang

17.2 SQL Injection  topZur vorigen Überschrift

Mangelnde Überprüfung von Benutzereingaben

Mit SQL Injection wird das Ausnutzen einer Sicherheitslücke, die durch mangelnde Überprüfung oder Maskierung von Benutzereingaben beim Zugriff auf SQL-Datenbanken entsteht, bezeichnet. Der Angreifer versucht, über die Formulare der Applikation, die den Zugriff auf die Datenbank ermöglichen, eigene Befehle abzusetzen, um Daten zu verändern, zu löschen oder sogar die Kontrolle über den Server zu erhalten.

Eine SQL Injection ist immer dann möglich, wenn eine Applikation Benutzer eingaben als Teil einer SQL-Abfrage an den Server weiterleitet, ohne die Benutzereingaben auf etwaige enthaltene Metazeichen (umgekehrter Schrägstrich, Apostroph, Anführungszeichen, Semikolon) zu prüfen und diese zu maskieren.

Wie Sie Ihre Applikation vor einer SQL Injection schützen

Automatischer Schutz

Solange Sie die von ActiveRecord zur Verfügung gestellten Methoden wie z. B. find und save nutzen, ohne conditions, limits oder eigene SQL-Abfragen zu formulieren, übernimmt ActiveRecord automatisch die Maskierung aller Metazeichen.

Eigene Maßnahmen

Sobald Sie eigene Bedingungen (conditions) oder ganze SQL-Abfragen selbst formulieren, müssen Sie darauf achten, dass Sie die Metazeichen maskieren. Deshalb sollten Sie Benutzereingaben nie ohne sie zu maskieren direkt in eine SQL-Abfrage übernehmen:

Flight.find(:all, :conditions => "code = '#{@params['code']}'")

Das ist gefährlich. Ein Angreifer könnte über den Parameter »code« folgende Zeichenkette senden:

'OR 1 --'

Der Aufruf des find -Befehls würde dann wie folgt lauten:

Flight.find(:all, :conditions => "code = '' OR 1 --''")

Die Zeichenkette 'OR 1 --' bewirkt, dass die Bedingung immer erfüllt ist, und die beiden Striche am Ende bewirken, dass der nachfolgende SQL-Code, sollte er existieren, auskommentiert wird. Das heißt, mit dieser Abfrage würden alle Flüge ausgegeben.

Array statt Zeichenkette

Verhindern können Sie das, indem Sie der find -Methode ein Array statt einer Zeichenkette übergeben:

Flight.find(:all, conditions => ["code = ?", @params['code']])

# oder
Flight.find(:all, :conditions => {:code => @params['code']})

ActiveRecord ersetzt automatisch den Platzhalter (?) in Element 1 des Arrays durch das Element 2, setzt dabei automatisch Anführungszeichen um Zeichenketten und maskiert die Metazeichen für den verwendeten Datenbankadapter.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Ruby on Rails 2
Ruby on Rails 2
Jetzt Buch bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern