Galileo Computing < openbook > Galileo 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

Download:
- ZIP, ca. 6,7 MB
Buch bestellen
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
Galileo Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt 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


Galileo Computing - Zum Seitenanfang

17.5 Sessions  Zur nächsten ÜberschriftZur vorigen Überschrift

Es gibt zwei Angriffsmöglichkeiten, vor denen Sie die Sessions Ihrer Benutzer schützen müssen:


Galileo Computing - Zum Seitenanfang

Session Hijacking  Zur nächsten ÜberschriftZur vorigen Überschrift

Übernahme der Session-ID

Beim Session Hijacking übernimmt der Angreifer die Session-ID eines Benutzers. Damit hat der Angreifer Zugriff auf die Applikation, weil die Session-ID als Login-Bescheinigung dient.

Häufig kommen die Angreifer durch Sniffing in unsicheren Netzwerken wie z. B. WLAN-Netzen oder in Internetcafés an die erforderlichen Daten.

Wie Sie sich und Ihre Benutzer vor einem solchen Angriff schützen

HTTPS

Sorgen Sie dafür, dass Cookies niemals über das HTTP-Protokoll geschickt werden, sondern immer über HTTPS. Dies können Sie erreichen, indem Sie folgende Zeile in Ihre environment.rb einsetzen:

ActionController::Base.session_options[:session_secure] = true

Speichern Sie zusätzliche Informationen in Ihren Cookies, wie z. B. die IP-Adresse, und gleichen Sie sie bei jedem Aufruf ab.

Neue Session erzeugen

Erzeugen Sie eine neue Session, wenn ein Benutzer sich erfolgreich angemeldet hat, und kopieren Sie die Daten der alten Session in die neue. Setzen Sie dabei die Methode reset_session ein.

Entwerten Sie beim Abmelden eines Benutzers seine Session z. B. mit session[:user_id] = nil.


Galileo Computing - Zum Seitenanfang

Session Fixation  topZur vorigen Überschrift

Session-ID unterschieben

Bei diesem Angriff schiebt der Angreifer einem ahnungslosen Opfer eine dem Angreifer bekannte Session-ID unter. Das heißt, zunächst benötigt der Angreifer eine gültige Session-ID der Applikation, die er angreifen möchte. Dies könnte z. B. über das Anlegen eines Benutzerkontos erfolgen. Diese Session-ID schiebt der Angreifer dann einem Opfer unter. Sobald sich das Opfer anschließend auf Basis der untergeschobenen Session-ID mit seinen Zugangsdaten an der Applikation anmeldet, hat auch der Angreifer Zugriff auf die Applikation mit den Benutzerrechten des Opfers.

Das Unterschieben der Session-ID könnte über eine manipulierte URL oder über einen Cross-Site-Scripting-Angriff mit JavaScript-Code erfolgen. Der Angreifer könnte seinem Opfer auch ein Session-Cookie der anzugreifenden Applikation unterschieben, während das Opfer eine Website besucht, über die der Angreifer die Kontrolle hat. Oder der Angreifer hat physikalischen Zugriff auf den Rechner seines Opfers und kann die ihm bekannte Session-ID direkt im Browser des Opfers hinterlegen.

Secret-Hash in Rails 2.0

Rails 2 bringt auch gegen diesen Angriff einen sehr guten Schutzmechanismus mit, der das Unterschieben praktisch unmöglich macht. Sessions werden in Rails 2 in Cookies gespeichert, die mit einem Hash-Wert vor Fälschung geschützt sind.

Beim Erstellen einer Rails-2-Applikation wird automatisch in der Datei config/environment.rb dieser secret -Hash generiert:

Listing  config/environment.rb

...
# Your secret key for verifying cookie session data integrity.
# If you change this key, all old sessions will become
# invalid! Make sure the secret is at least 30 characters and
# all random, no regular words or you'll be exposed to
# dictionary attacks.

config.action_controller.session = {
  :session_key => '_bookmarkmanager_session',
  :secret      => '043067831bc3aef23ae2a8b20e31862c0d39db8c...'
}
...

Zusätzlicher Schutz

Trotz dieses Sicherheitsmechanismus, den Rails 2 mitbringt, können Sie sich zusätzlich vor einem Session-Fixation-Angriff schützen, indem Sie nach dem Login eines Benutzers eine neue Session generieren.

Plug-in restful_authentication

Um sich sowohl vor einem Session-Hijacking-Angriff als auch vor einem Session-Fixation-Angriff zu schützen, empfehlen wir für die Authentifizierung das Plug-in »restful_authentication« (siehe Abschnitt 15.2.1) einzusetzen, weil bei der Entwicklung dieses Plug-ins auch Sicherheitsaspekte berücksichtigt werden. Außerdem werden Plug-ins ständig weiterentwickelt, so dass auch neu auftretende Sicherheitslücken ziemlich schnell geschlossen werden.

Update auf Rails 2
Wenn Sie eine vorhandene Applikation auf Rails 2 updaten, fehlt dieser secret -Hash in der environment.rb und der Aufruf der Methode protect_ from_forgery im ApplicationController. Beide Einträge müssen Sie in diesem Fall manuell vornehmen. Mit folgendem rake-Task können Sie einen eigenen secret-Hash generieren:
rake secret ID="ultrageheim"
=> 4ed65cd4b6efb6802068fa0af79f4b194612...

Diesen secret -Hash können Sie dann in der environment.rb eintragen:

config.action_controller.session = {
  :session_key => 'ultrageheim',
  :secret      => '4ed65cd4b6efb6802068fa0af79f4b194612...'
}


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2






Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Zend Framework






 Zend Framework


Zum Katalog: AJAX






 AJAX


Zum Katalog: Praxisbuch Web 2.0






 Praxisbuch Web 2.0


Zum Katalog: CSS-Layouts






 CSS-Layouts


Zum Katalog: JavaScript und Ajax






 JavaScript und Ajax


Zum Katalog: Professionelles Webdesign mit (X)HTML und CSS






 Professionelles Webdesign
 mit (X)HTML und CSS


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-Optimierung


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de