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.3 Cross-Site-Scripting XSS  topZur vorigen Überschrift

Schadhafter Code wird eingeschleust

Mit Cross-Site-Scripting wird eine Angriffsform bezeichnet, die versucht, schadhaften Code (HTML, CSS, JacaScript, XML), der clientseitig ausgeführt wird, in eine Website einzuschleusen und im vertrauenswürdigen Kontext der Website auszuführen.

Der Angreifer sendet dazu entsprechend präparierten HTML-Code an eine Applikation, die diesen speichert. Bei späteren Anfragen anderer Benutzer wird der schadhafte Code an die Anfragen angehängt, ohne ihn zu maskieren. JavaScript in Verbindung mit HTML ist die meistverwendete Script-Sprache für diese Angriffsform.

Ziel: Identitätsdiebstahl

Ziel dieser Angriffe ist es meistens, Cookies mit Benutzerdaten auszuspähen, um zum Beispiel Benutzerkonten zu übernehmen (Identitätsdiebstahl). Das heißt, betroffen sind vor allem Websites, die Benutzerdaten an eine Datenbank senden, z. B. über Anmeldeformulare oder Formulare zur Anforderung vergessener Passwörter.

Hinweis
Cross-Site-Scripting wird häufig mit CSS abgekürzt. Da es dabei zu Verwechslungen mit der Abkürzung für Cascading Stylesheets kommen kann, wird empfohlen, die Abkürzung XSS für Cross-Site-Scripting zu verwenden.

Ausgabe ungepüfter Benutzereingaben

Möglich ist ein Cross-Site-Scripting-Angriff immer dann, wenn Benutzereingaben ungeprüft und ohne Maskierung der Metazeichen an der Oberfläche ausgegeben werden. Wenn eine Benutzereingabe in einem solchen Fall also JavaScript-Befehle enthielte, würden diese ausgeführt:

<%= @params['text'] %>

Wenn der Parameter text z. B. den folgenden JavaScript-Code enhielte,

<script>alert(document.cookie)</script>

würde der Inhalts des Cockies der Seite angezeigt.

Wie Sie Ihre Applikation vor einem XSS-Angriff schützen

Risiko minimieren

Das Risiko, einem XSS-Angriff ausgesetzt zu werden, können Sie minimieren, indem Sie konsequent alle HTML-Metazeichen in Benutzereingaben oder Variablen, die Sie an der Oberfläche ausgeben, in HTML-Entities umwandeln, bevor Sie sie ausgeben. Dazu stellt Rails die Methode escape_html() bzw. ihren Alias h() zur Verfügung:

<%=h @params['text'] %>

Sicherheitslücken geschlossen

Darüber hinaus wurden ab Rails 2 die Sicherheitslücken in den Methoden sanitize, strip_tags und strip_links geschlossen, so dass Sie diese auch zur Verhinderung eines XSS-Angriffs einsetzen können.

Mehr zu diesen Methode, erfahren Sie im Abschnitt 8.3.6.

Safe ERB

Das Plug-in Safe ERB ( http://railsbuch.de/urls/4 ) überprüft, ob wirklich alle Ausgaben in Ihren ERB-Templates innerhalb von <%= %> mit der Methode h escaped wurden. Wenn nicht, kommt es zu einem Fehler.

Whitelist

Arbeiten Sie nicht mit einer Blacklist, um schadhaften Code auszuschliessen, sondern immer mit einer Whitelist, die prinzipiell alles ausschließt, außer den definierten Ausnahmen. Nutzen Sie dazu das Plug-in WhiteListHelper ( http://railsbuch.de/urls/7 ).

BlueCloth und RedCloth

Zur Textformatierung nutzen Sie am besten BlueCloth oder RedCloth (siehe Abschnitt 8.3.5) in Verbindung mit dem WhiteListHelper.



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