window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } 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 }) }, } } })() Webapp-sikkerhed - XSS-sårbarhed - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2021-04-16
Udvikling af software

Webapp-sikkerhed - XSS-sårbarhed

Lukasz Kolko

XSS-angreb gør det muligt for angribere at indsætte scripts på klientsiden i websider, der ses af andre brugere. De vigtigste effekter af denne sårbarhed er muligheden for at udføre handlinger i den indloggede brugers kontekst og læse data i den indloggede brugers kontekst.

Angrebsscenarie

  1. Angriberen finder XSS-sårbarheden på en hjemmeside, der bruges af offeret, f.eks. en banks hjemmeside.
  2. Offeret er i øjeblikket logget ind på denne side
  3. Angriberen sender offeret en forfalsket URL
  4. Offeret klikker på URL'en
  5. På offerets Bank hjemmeside, JavaScript Kode begynder at udføre for at opsnappe brugerens data eller udføre en overførsel på hans vegne til angriberens konto

Det er værd at bemærke, at operationer, der udføres på vegne af offeret, kan være usynlige for offeret, da de kan finde sted i baggrunden ved hjælp af bankens API, eller angriberen kan udføre dem senere med de data, der er nødvendige for autentificering, tokens, cookies osv.

XSS-typer

1. Reflekteret XSS

Det er en, hvor HTML/JavaScript-kode indeholdt i en hvilken som helst parameter (f.eks. GET, POST eller cookie) vises som svar.

En side med et tekstinput til at søge efter noget, der sætter parameteren ?search=foo i slutningen af URL'en, når API'en forespørges. Efter indtastning af en sætning, hvis den ikke findes, placeres en returmeddelelse i HTML ex.

<div>Intet resultat fundet for <b>Fjols</b></div>

Vi kan prøve at sætte URL'en ind ?search=...

2.DOM XSS

Det er, når dens udførelse aktiveres ved brug af farlige funktioner i JavaScript, såsom `eval` eller `innerHtml`. "Live-eksemplet" nedenfor viser et DOM XSS-angreb baseret på `innerHtml` funktion.

3. Gemt XSS

Her bliver den ondsindede kode skrevet på serversiden. Vi kan f.eks. sende en kommentar med ondsindet kode til et blogindlæg, som uploades til serveren. Dens opgave er f.eks. at vente på administratorens moderering og derefter stjæle hans sessionsdata osv.

Injektionsmetoder

1. I tag-indholdet

`onerror=alert('XSS')`ind i

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

2. I indholdet af attributten

`" onmouseover=alert('XSS')` ind i

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

  1. I indholdet af attributten uden anførselstegnene

x onclick=alert('XSS')ind i

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

  1. I hrefef-attribut

javascript:alert('XSS') ind i

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

  1. I strengen inde i JavaScript-koden

";alert('XSS')//. ind i

.
  1. I attributten med JavaScript-begivenheden

');alert('XSS')//. hvor ' er et enkelt anførselstegn, i

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

  1. I href attribut inde i JavaScript-protokollen

);alert(1)// hvor %27 er et enkelt anførselstegn, i

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


Et levende eksempel

Forsvarsmetoder

  1. Datakodning ved hjælp af indbyggede funktioner, der findes i mange programmeringssprog.
  2. Brug af skabelonsystemer med automatisk kodning. De fleste af de populære frameworks, der bruger sådanne systemer, beskytter os mod XSS-injektion (Django, Templates, Vue, React osv.).
  3. Brug ikke funktioner som eval eller Funktion med brugerdata, der ikke er tillid til.
  4. Brug ikke funktioner og egenskaber, der tildeler HTML-kode direkte til DOM-træelementerne, f.eks, innerHTML, ydreHTML, indsætAdjacentHTML, ocument.write. I stedet kan du bruge funktioner, der tildeler tekst direkte til disse elementer, f.eks. tekstIndhold eller indreTekst.
  5. Vær forsigtig, når du omdirigerer brugeren til en URL, der er under hans kontrol. Risiko for injektion location = 'javascript('XSS')'.
  6. Filtrer HTML ved hjælp af biblioteker som f.eks. DOMPurify.
  7. Vær forsigtig med at uploade .html eller .svg filer. Du kan oprette et separat domæne, hvorfra de uploadede filer vil blive serveret.
  8. Brug den Politik for indholdssikkerhed mekanisme.
  9. Tag et kig på de anti-XSS-filtre, der er indbygget i de mest populære browsere.

    Hvis du synes, at denne artikel er interessant, så følg Lukasz på Github: https://github.com/twistezo

Læs mere om det:

Strategier for at hente data i NextJS

Rails API og CORS. Et strejf af bevidsthed

Hvorfor bør du (sandsynligvis) bruge Typescript?

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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