window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Säkerhet för webbappar - XSS-sårbarhet - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2021-04-16
Utveckling av programvara

Säkerhet i webbapplikationer - XSS-sårbarhet

Lukasz Kolko

XSS-attacker gör det möjligt för angripare att injicera skript på klientsidan i webbsidor som visas av andra användare. De huvudsakliga effekterna av denna sårbarhet är möjligheten att utföra alla åtgärder i den inloggade användarens kontext och läsa alla data i den inloggade användarens kontext.

Scenario för attack

  1. Angriparen hittar XSS-sårbarheten på en webbplats som används av offret, t.ex. en banks webbplats
  2. Offret är för närvarande inloggad på denna sida
  3. Angriparen skickar offret en förfalskad URL
  4. Offret klickar på webbadressen
  5. På offrets bank webbplats, JavaScript kod börjar exekvera för att avlyssna användarens data eller utföra en överföring för hans räkning till angriparens konto

Det är värt att notera att operationer som utförs för offrets räkning kan vara osynliga för offret, eftersom de kan ske i bakgrunden med hjälp av bankens API, eller så kan angriparen utföra dem senare med de uppgifter som behövs för autentisering, tokens, cookies etc.

XSS-typer

1. Reflekterad XSS

Detta är en metod där HTML/JavaScript-kod som ingår i en parameter (t.ex. GET, POST eller cookie) visas i svaret.

En sida med en textinmatning för att söka efter något som sätter parametern ?sök=foo i slutet av URL:en när du frågar API:et. Om en fras inte hittas efter att den har angetts, placeras ett returmeddelande i HTML ex.

<div>Inget resultat hittades för <b>Foo</b></div>

Vi kan försöka lägga in URL:en ?search=...

2.DOM XSS

Detta är när dess utförande möjliggörs genom användning av farliga funktioner i JavaScript, t.ex. `eval` eller `innerHtml`. "Live-exemplet" nedan visar en DOM XSS-attack baserad på `innerHtml` funktion.

3. Lagrad XSS

Det här är ett fall där den skadliga koden skrivs på serversidan. Vi kan t.ex. skicka en kommentar med skadlig kod till ett blogginlägg som laddas upp på servern. Dess uppgift är t.ex. att vänta på administratörens moderering och sedan stjäla hans sessionsdata osv.

Injektionsmetoder

1. I taggens innehåll

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

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

2. I innehållet i attributet

`" onmouseover=varning('XSS')` in i

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

  1. I innehållet i attributet utan citattecken

x onclick=varning('XSS')in i

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

  1. I hrefef-attribut

javascript:alert('XSS') in i

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

  1. I strängen inuti JavaScript-koden

";alert('XSS')// in i

  1. I attributet med händelsen JavaScript

');alert('XSS')// där ' är ett enkelt citat, till

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

  1. I href attribut i JavaScript-protokollet

);alert(1)// där %27 är ett enkelt citat, till

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


Live exempel

Försvarsmetoder

  1. Datakodning med hjälp av inbyggda funktioner som finns i många programmeringsspråk.
  2. Använda mallsystem med automatisk kodning. De flesta populära ramverk som använder sådana system skyddar oss från XSS-injektion (Django, Templates, Vue, React etc.).
  3. Använd inte funktioner som eval eller Funktion med otillförlitliga användardata.
  4. Använd inte funktioner och egenskaper som tilldelar HTML-kod direkt till DOM-trädelementen, t.ex, innerHTML, yttreHTML, infogaAdjacentHTML, ocument.skriv. Istället kan du använda funktioner som tilldelar text direkt till dessa element, t.ex. textinnehåll eller innerText.
  5. Var försiktig när du omdirigerar användaren till en URL som är under hans kontroll. Risk för injektion location = 'javascript('XSS')'.
  6. Filtrera HTML med hjälp av bibliotek som t.ex. DOMPurify.
  7. Var försiktig när du laddar upp .html eller .svg filer. Du kan skapa en separat domän från vilken de uppladdade filerna kommer att serveras.
  8. Använd Innehåll-säkerhet-policy mekanism.
  9. Ta en titt på de anti-XSS-filter som finns inbyggda i de flesta populära webbläsare.

    Om du tycker att den här artikeln är intressant kan du följa Lukasz på Github: https://github.com/twistezo

Läs mer om detta:

Strategier för datahämtning i NextJS

Rails API & CORS. Ett stänk av medvetenhet

Varför bör du (förmodligen) använda Typescript?

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

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

    Polen - Lokala tekniknav

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

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

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