window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Sicherheit von Webanwendungen - XSS-Schwachstelle - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-04-16
Software-Entwicklung

Sicherheit von Webanwendungen - XSS-Schwachstelle

Lukasz Kolko

XSS-Angriffe ermöglichen es Angreifern, clientseitige Skripte in Webseiten einzuschleusen, die von anderen Benutzern aufgerufen werden. Die wichtigsten Auswirkungen dieser Schwachstelle sind die Möglichkeit, beliebige Aktionen im Kontext des angemeldeten Benutzers auszuführen und beliebige Daten im Kontext des angemeldeten Benutzers zu lesen.

Angriffsszenario

  1. Der Angreifer findet die XSS-Schwachstelle auf einer vom Opfer genutzten Website, z. B. auf der Website einer Bank
  2. Das Opfer ist derzeit auf dieser Seite angemeldet
  3. Der Angreifer sendet dem Opfer eine manipulierte URL
  4. Das Opfer klickt auf die URL
  5. Auf der Seite des Opfers Bank Website, JavaScript Code beginnt mit der Ausführung, um die Daten des Nutzers abzufangen oder in seinem Namen eine Überweisung auf das Konto des Angreifers vorzunehmen

Es ist anzumerken, dass die im Namen des Opfers durchgeführten Operationen für das Opfer unsichtbar sein können, da sie im Hintergrund über die API der Bank erfolgen können, oder der Angreifer kann sie später mit den für die Authentifizierung erforderlichen Daten, Token, Cookies usw. durchführen.

XSS-Typen

1. Reflektiertes XSS

Hier wird der HTML/JavaScript-Code, der in einem beliebigen Parameter (z. B. GET, POST oder Cookie) enthalten ist, als Antwort angezeigt.

Eine Seite mit einer Texteingabe zur Suche nach etwas, das den Parameter ?search=foo in der URL-Endung, wenn Sie die API abfragen. Nach der Eingabe einer beliebigen Phrase, wenn sie nicht gefunden wird, wird eine Rückmeldung in HTML ex.

<div>Kein Ergebnis gefunden für <b>foo</b></div>

Wir können versuchen, die URL einzugeben ?search=..

2.DOM XSS

Dies ist der Fall, wenn seine Ausführung durch die Verwendung gefährlicher Funktionen in JavaScript ermöglicht wird, wie z. B. Wert oder `innerHtml`. Das folgende "Live-Beispiel" zeigt einen DOM-XSS-Angriff auf der Grundlage der `innerHtml` Funktion.

3. Gespeicherte XSS

In diesem Fall wird der bösartige Code auf der Serverseite geschrieben. Wir können zum Beispiel einen Kommentar mit bösartigem Code an einen Blogbeitrag senden, der auf den Server hochgeladen wird. Seine Aufgabe besteht beispielsweise darin, auf die Moderation des Administrators zu warten und dann seine Sitzungsdaten zu stehlen usw.

Injektionsverfahren

1. Im Tag-Inhalt

`onerror=alert('XSS')`in

<img src onerror="alert('XSS')" />

2. Im Inhalt des Attributs

`" onmouseover=alert('XSS')` in

<div class="" onmouseover="alert('XSS')""></div>

  1. Im Inhalt des Attributs ohne die Anführungszeichen

x onclick=alert('XSS')in

<div class="x" onclick="alert('XSS')"></div>

  1. In der hrefef-Attribut

javascript:alert('XSS') in

<a href="javascript:alert('XSS')"></a>

  1. In der Zeichenfolge innerhalb des JavaScript-Codes

";alert('XSS')// in

  1. In dem Attribut mit dem Ereignis JavaScript

');alert('XSS')// wobei ' ist ein einfaches Anführungszeichen, in

<div onclick="change('&#39;);alert('XSS')//')">John</div>

  1. In der href Attribut innerhalb des JavaScript-Protokolls

);alert(1)// wobei %27 ist ein einfaches Anführungszeichen, in

<a href="javascript:change('');alert(1)//')">anklicken.</a>


Live-Beispiel

Verteidigungsmethoden

  1. Datenkodierung mit integrierten Funktionen, die in vielen Programmiersprachen.
  2. Verwendung von Templatesystemen mit automatischer Kodierung. Die meisten der beliebten Frameworks, die solche Systeme verwenden, schützen uns vor XSS-Injektion (Django, Templates, Vue, React usw.).
  3. Verwenden Sie keine Funktionen wie eval oder Funktion mit nicht vertrauenswürdigen Benutzerdaten.
  4. Verwenden Sie keine Funktionen und Eigenschaften, die HTML-Code direkt den DOM-Baumelementen zuweisen, z.B., innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Stattdessen können Sie Funktionen verwenden, die diesen Elementen direkt Text zuweisen, wie z. B. textInhalt oder innerText.
  5. Seien Sie vorsichtig, wenn Sie den Benutzer zu einer URL umleiten, die unter seiner Kontrolle steht. Risiko der Injektion location = 'javascript('XSS')'.
  6. HTML-Filter mit Bibliotheken wie DOMPurify.
  7. Seien Sie vorsichtig beim Hochladen .html oder .svg Dateien. Sie können eine separate Domain erstellen, von der aus die hochgeladenen Dateien bereitgestellt werden.
  8. Verwenden Sie die Content-Security-Policy Mechanismus.
  9. Werfen Sie einen Blick auf die in den meisten gängigen Browsern integrierten Anti-XSS-Filter.

    Wenn Sie diesen Artikel interessant finden, folgen Sie Lukasz auf Github: https://github.com/twistezo

Lesen Sie mehr:

Strategien zum Abrufen von Daten in NextJS

Rails API und CORS. Ein Hauch von Bewusstsein

Warum sollten Sie (wahrscheinlich) Typescript verwenden?

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

    de_DEGerman
    en_USEnglish sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek de_DEGerman