window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versjon: 2, } ;(function () { var w = vindu if (w.LeadBooster) { console.warn('LeadBooster finnes 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 }) }, } } })() Sikkerhet i webapper - XSS-sårbarhet - The Codest
The Codest
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Industrier
    • Fintech og bankvirksomhet
    • E-commerce
    • Adtech
    • Helseteknologi
    • Produksjon
    • Logistikk
    • Bilindustrien
    • IOT
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
Pil tilbake GÅ TILBAKE
2021-04-16
Programvareutvikling

Sikkerhet i webapplikasjoner - XSS-sårbarhet

Lukasz Kolko

XSS-angrep gjør det mulig for angripere å injisere skript på klientsiden i nettsider som vises av andre brukere. De viktigste effektene av denne sårbarheten er muligheten for å utføre handlinger i konteksten til den innloggede brukeren, og å lese data i konteksten til den innloggede brukeren.

Angrepsscenario

  1. Angriperen finner XSS-sårbarheten på et nettsted som brukes av offeret, f.eks. en banks nettsted.
  2. Offeret er for øyeblikket logget inn på denne siden
  3. Angriperen sender offeret en forfalsket URL
  4. Offeret klikker på nettadressen
  5. På offerets bank nettsted, JavaScript kode begynner å kjøre for å fange opp brukerens data eller utføre en overføring på hans vegne til angriperens konto

Det er verdt å merke seg at operasjoner som utføres på vegne av offeret, kan være usynlige for offeret, ettersom de kan foregå i bakgrunnen ved hjelp av bankens API, eller angriperen kan utføre dem senere med data som trengs for autentisering, tokens, informasjonskapsler osv.

XSS-typer

1. Reflektert XSS

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

En side med en tekstinngang for å søke etter noe som setter parameteren ?search=foo i URL-enden når du spør API-et. Hvis en frase ikke blir funnet etter at du har skrevet den inn, vises en returmelding i HTML ex.

<div>Ingen resultater funnet for <b>foo</b></div>

Vi kan prøve å legge inn URL-en ?search=..

2.DOM XSS

Dette er når utførelsen er aktivert ved bruk av farlige funksjoner i JavaScript, for eksempel `eval` eller `innerHtml`. "Live-eksemplet" nedenfor viser et DOM XSS-angrep basert på `innerHtml` funksjon.

3. Lagret XSS

Dette er en situasjon der den ondsinnede koden blir skrevet på serversiden. Vi kan for eksempel sende en kommentar med ondsinnet kode til et blogginnlegg som lastes opp til serveren. Oppgaven er for eksempel å vente på administratorens moderering og deretter stjele øktdataene hans osv.

Injeksjonsmetoder

1. I taggens innhold

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

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

2. I innholdet i attributtet

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

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

  1. I innholdet i attributtet uten anførselstegn

x onclick=alert('XSS')inn i

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

  1. I hrefef-attributt

javascript:alert('XSS') inn i

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

  1. I strengen inne i JavaScript-koden

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

  1. I attributtet med hendelsen JavaScript

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

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

  1. I href attributt i JavaScript-protokollen

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

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


Direkte eksempel

Forsvarsmetoder

  1. Datakoding ved hjelp av innebygde funksjoner som finnes i mange programmeringsspråk.
  2. Bruk av malsystemer med automatisk koding. De fleste populære rammeverkene som bruker slike systemer, beskytter oss mot XSS-injeksjon (Django, Templates, Vue, React osv.).
  3. Ikke bruk funksjoner som evaluering eller Funksjon med upålitelige brukerdata.
  4. Ikke bruk funksjoner og egenskaper som tilordner HTML-kode direkte til DOM-treelementene, f.eks, innerHTML, outerHTML, insertAdjacentHTML, ocument.write. I stedet kan du bruke funksjoner som tilordner tekst direkte til disse elementene, for eksempel tekstInnhold eller innerText.
  5. Vær forsiktig når du omdirigerer brukeren til en URL som er under brukerens kontroll. Risiko for injeksjon location = 'javascript('XSS')'.
  6. Filtrer HTML ved hjelp av biblioteker som f.eks. DOMPurify.
  7. Vær forsiktig med å laste opp .html eller .svg filer. Du kan opprette et eget domene som de opplastede filene skal betjenes fra.
  8. Bruk Retningslinjer for innholdssikkerhet mekanisme.
  9. Ta en titt på anti-XSS-filtrene som er innebygd i de mest populære nettleserne.

    Hvis du synes denne artikkelen er interessant, kan du følge Lukasz på Github: https://github.com/twistezo

Les mer om dette:

Strategier for datahenting i NextJS

Rails API og CORS. Et snev av bevissthet

Hvorfor bør du (sannsynligvis) bruke Typescript?

Relaterte artikler

Programvareutvikling

Bygg fremtidssikre webapper: Innsikt fra The Codests ekspertteam

Oppdag hvordan The Codest utmerker seg når det gjelder å skape skalerbare, interaktive webapplikasjoner med banebrytende teknologi som gir sømløse brukeropplevelser på tvers av alle plattformer. Finn ut hvordan ekspertisen vår driver digital transformasjon og...

THECODEST
Programvareutvikling

Topp 10 Latvia-baserte programvareutviklingsselskaper

I vår nyeste artikkel kan du lese mer om Latvias beste programvareutviklingsselskaper og deres innovative løsninger. Oppdag hvordan disse teknologilederne kan bidra til å løfte virksomheten din.

thecodest
Løsninger for bedrifter og oppskalering

Grunnleggende om Java-programvareutvikling: En guide til vellykket outsourcing

Utforsk denne viktige veiledningen om vellykket outsourcing av Java-programvareutvikling for å øke effektiviteten, få tilgang til ekspertise og drive frem prosjektsuksess med The Codest.

thecodest
Programvareutvikling

Den ultimate guiden til outsourcing i Polen

Den kraftige økningen i outsourcing i Polen er drevet av økonomiske, utdanningsmessige og teknologiske fremskritt, noe som fremmer IT-vekst og et forretningsvennlig klima.

TheCodest
Løsninger for bedrifter og oppskalering

Den komplette guiden til verktøy og teknikker for IT-revisjon

IT-revisjoner sørger for sikre, effektive og kompatible systemer. Les hele artikkelen for å lære mer om viktigheten av dem.

The Codest
Jakub Jakubowicz CTO og medgrunnlegger

Abonner på vår kunnskapsbase og hold deg oppdatert på ekspertisen fra IT-sektoren.

    Om oss

    The Codest - Internasjonalt programvareutviklingsselskap med teknologisentre i Polen.

    Storbritannia - Hovedkvarter

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

    Polen - Lokale teknologisentre

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

      The Codest

    • Hjem
    • Om oss
    • Tjenester
    • Casestudier
    • Vet hvordan
    • Karriere
    • Ordbok

      Tjenester

    • Det rådgivende
    • Programvareutvikling
    • Backend-utvikling
    • Frontend-utvikling
    • Staff Augmentation
    • Backend-utviklere
    • Ingeniører i skyen
    • Dataingeniører
    • Annet
    • QA-ingeniører

      Ressurser

    • Fakta og myter om samarbeid med en ekstern programvareutviklingspartner
    • Fra USA til Europa: Hvorfor velger amerikanske oppstartsbedrifter å flytte til Europa?
    • Sammenligning av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinene), Eurasia (Tyrkia)
    • Hva er de største utfordringene for CTO-er og CIO-er?
    • The Codest
    • The Codest
    • The Codest
    • Retningslinjer for personver
    • Vilkår for bruk av nettstedet

    Opphavsrett © 2025 av The Codest. Alle rettigheter forbeholdt.

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